home *** CD-ROM | disk | FTP | other *** search
/ Cream of the Crop 26 / Cream of the Crop 26.iso / program / inter54c.zip / INTERRUP.M < prev    next >
Text File  |  1997-06-29  |  310KB  |  8,432 lines

  1. Interrupt List, part 13 of 16
  2. Copyright (c) 1989,1990,1991,1992,1993,1994,1995,1996,1997 Ralf Brown
  3. --------M-330000-----------------------------
  4. INT 33 - MS MOUSE - RESET DRIVER AND READ STATUS
  5.     AX = 0000h
  6. Return: AX = status
  7.         0000h hardware/driver not installed
  8.         FFFFh hardware/driver installed
  9.     BX = number of buttons
  10.         0000h other than two
  11.         0002h two buttons (many drivers)
  12.         0003h Mouse Systems/Logitech three-button mouse
  13.         FFFFh two buttons
  14. Notes:    to use mouse on a Hercules-compatible monographics card in graphics
  15.       mode, you must first set 0040h:0049h to 6 for page 0 or 5 for page 1,
  16.       and then call this function.    Logitech drivers v5.01 and v6.00
  17.       reportedly do not correctly use Hercules graphics in dual-monitor
  18.       systems, while version 4.10 does.
  19.     the Logitech mouse driver contains the signature string "LOGITECH"
  20.       three bytes past the interrupt handler; many of the Logitech mouse
  21.       utilities check for this signature.
  22.     Logitech MouseWare v6.30 reportedly does not support CGA video modes
  23.       if no CGA is present when it is started and the video board is
  24.       later switched into CGA emulation
  25. SeeAlso: AX=0011h,AX=0021h,AX=002Fh,INT 62/AX=007Ah,INT 74
  26. --------M-330001-----------------------------
  27. INT 33 - MS MOUSE v1.0+ - SHOW MOUSE CURSOR
  28.     AX = 0001h
  29. SeeAlso: AX=0002h,INT 16/AX=FFFEh,INT 62/AX=007Bh,INT 6F/AH=06h"F_TRACK_ON"
  30. --------M-330002-----------------------------
  31. INT 33 - MS MOUSE v1.0+ - HIDE MOUSE CURSOR
  32.     AX = 0002h
  33. Note:    multiple calls to hide the cursor will require multiple calls to
  34.       function 01h to unhide it.
  35. SeeAlso: AX=0001h,AX=0010h,INT 16/AX=FFFFh,INT 62/AX=007Bh
  36. SeeAlso: INT 6F/AH=08h"F_TRACK_OFF"
  37. --------M-330003-----------------------------
  38. INT 33 - MS MOUSE v1.0+ - RETURN POSITION AND BUTTON STATUS
  39.     AX = 0003h
  40. Return: BX = button status (see #2800)
  41.     CX = column
  42.     DX = row
  43. Note:    in text modes, all coordinates are specified as multiples of the cell
  44.       size, typically 8x8 pixels
  45. SeeAlso: AX=0004h,AX=000Bh,INT 2F/AX=D000h"ZWmous"
  46.  
  47. Bitfields for mouse button status:
  48. Bit(s)    Description    (Table 2800)
  49.  0    left button pressed if 1
  50.  1    right button pressed if 1
  51.  2    middle button pressed if 1 (Mouse Systems/Logitech/Genius)
  52. --------M-330004-----------------------------
  53. INT 33 - MS MOUSE v1.0+ - POSITION MOUSE CURSOR
  54.     AX = 0004h
  55.     CX = column
  56.     DX = row
  57. Note:    the row and column are truncated to the next lower multiple of the cell
  58.       size (typically 8x8 in text modes); however, some versions of the
  59.       Microsoft documentation incorrectly state that the coordinates are
  60.       rounded
  61. SeeAlso: AX=0003h,INT 62/AX=0081h,INT 6F/AH=10h"F_PUT_SPRITE"
  62. --------M-330005-----------------------------
  63. INT 33 - MS MOUSE v1.0+ - RETURN BUTTON PRESS DATA
  64.     AX = 0005h
  65.     BX = button number (see #2801)
  66. Return: AX = button states (see #2800)
  67.     BX = number of times specified button has been pressed since last call
  68.     CX = column at time specified button was last pressed
  69.     DX = row at time specified button was last pressed
  70. Note:    at least for the Genius mouse driver, the number of button presses
  71.       returned is limited to 7FFFh
  72. SeeAlso: AX=0006h,INT 62/AX=007Ch
  73.  
  74. (Table 2801)
  75. Values for mouse button number:
  76.  0000h    left
  77.  0001h    right
  78.  0002h    middle (Mouse Systems/Logitech/Genius mouse)
  79. --------M-330006-----------------------------
  80. INT 33 - MS MOUSE v1.0+ - RETURN BUTTON RELEASE DATA
  81.     AX = 0006h
  82.     BX = button number (see #2801)
  83. Return: AX = button states (see #2800)
  84.     BX = number of times specified button has been released since last call
  85.     CX = column at time specified button was last released
  86.     DX = row at time specified button was last released
  87. Note:    at least for the Genius mouse driver, the number of button releases
  88.       returned is limited to 7FFFh
  89. SeeAlso: AX=0005h,INT 62/AX=007Ch
  90. --------M-330007-----------------------------
  91. INT 33 - MS MOUSE v1.0+ - DEFINE HORIZONTAL CURSOR RANGE
  92.     AX = 0007h
  93.     CX = minimum column
  94.     DX = maximum column
  95. Note:    in text modes, the minimum and maximum columns are truncated to the
  96.       next lower multiple of the cell size, typically 8x8 pixels
  97. SeeAlso: AX=0008h,AX=0010h,AX=0031h,INT 62/AX=0080h
  98. SeeAlso: INT 6F/AH=0Ch"F_SET_LIMITS_X"
  99. --------M-330008-----------------------------
  100. INT 33 - MS MOUSE v1.0+ - DEFINE VERTICAL CURSOR RANGE
  101.     AX = 0008h
  102.     CX = minimum row
  103.     DX = maximum row
  104. Note:    in text modes, the minimum and maximum rows are truncated to the
  105.       next lower multiple of the cell size, typically 8x8 pixels
  106. SeeAlso: AX=0007h,AX=0010h,AX=0031h,INT 62/AX=0080h
  107. SeeAlso: INT 6F/AH=0Eh"F_SET_LIMITS_Y"
  108. --------M-330009-----------------------------
  109. INT 33 - MS MOUSE v3.0+ - DEFINE GRAPHICS CURSOR
  110.     AX = 0009h
  111.     BX = column of cursor hot spot in bitmap (-16 to 16)
  112.     CX = row of cursor hot spot (-16 to 16)
  113.     ES:DX -> mask bitmap (see #2802)
  114. Notes:    in graphics modes, the screen contents around the current mouse cursor
  115.       position are ANDed with the screen mask and then XORed with the
  116.       cursor mask
  117.     the Microsoft mouse driver v7.04 and v8.20 uses only BL and CL, so the
  118.       hot spot row/column should be limited to -128..127
  119.     Microsoft KnowledgeBase article Q19850 states that the high bit is
  120.       right-most, but that statement is contradicted by all other available
  121.       documentation
  122. SeeAlso: AX=000Ah,AX=0012h,AX=002Ah,INT 62/AX=007Fh,INT 6F/AH=0Ah"F_DEF_MASKS"
  123.  
  124. Format of mouse mask bitmap:
  125. Offset    Size    Description    (Table 2802)
  126.  00h 16 WORDs    screen mask
  127.  10h 16 WORDs    cursor mask
  128. Note:    each word defines the sixteen pixels of a row, low bit rightmost
  129. --------M-33000A-----------------------------
  130. INT 33 - MS MOUSE v3.0+ - DEFINE TEXT CURSOR
  131.     AX = 000Ah
  132.     BX = hardware/software text cursor
  133.         0000h software
  134.         CX = screen mask
  135.         DX = cursor mask
  136.         0001h hardware
  137.         CX = start scan line
  138.         DX = end scan line
  139. Note:    when the software cursor is selected, the character/attribute data at
  140.       the current screen position is ANDed with the screen mask and then
  141.       XORed with the cursor mask
  142. SeeAlso: AX=0009h,INT 62/AX=007Eh
  143. --------M-33000B-----------------------------
  144. INT 33 - MS MOUSE v1.0+ - READ MOTION COUNTERS
  145.     AX = 000Bh
  146. Return: CX = number of mickeys mouse moved horizontally since last call
  147.     DX = number of mickeys mouse moved vertically
  148. Notes:    a mickey is the smallest increment the mouse can sense
  149.     positive values indicate down/right
  150. SeeAlso: AX=0003h,AX=001Bh,AX=0027h
  151. --------M-33000C-----------------------------
  152. INT 33 - MS MOUSE v1.0+ - DEFINE INTERRUPT SUBROUTINE PARAMETERS
  153.     AX = 000Ch
  154.     CX = call mask (see #2803)
  155.     ES:DX -> FAR routine (see #2804)
  156. SeeAlso: AX=0018h
  157.  
  158. Bitfields for mouse call mask:
  159. Bit(s)    Description    (Table 2803)
  160.  0    call if mouse moves
  161.  1    call if left button pressed
  162.  2    call if left button released
  163.  3    call if right button pressed
  164.  4    call if right button released
  165.  5    call if middle button pressed (Mouse Systems/Logitech/Genius mouse)
  166.  6    call if middle button released (Mouse Systems/Logitech/Genius mouse)
  167.  7-15    unused
  168. Note:    some versions of the Microsoft documentation incorrectly state that CX
  169.       bit 0 means call if mouse cursor moves
  170.  
  171. (Table 2804)
  172. Values interrupt routine is called with:
  173.     AX = condition mask (same bit assignments as call mask)
  174.     BX = button state
  175.     CX = cursor column
  176.     DX = cursor row
  177.     SI = horizontal mickey count
  178.     DI = vertical mickey count
  179. Notes:    some versions of the Microsoft documentation erroneously swap the
  180.       meanings of SI and DI
  181.     in text modes, the row and column will be reported as a multiple of
  182.       the character cell size, typically 8x8 pixels
  183. --------M-33000D-----------------------------
  184. INT 33 - MS MOUSE v1.0+ - LIGHT PEN EMULATION ON
  185.     AX = 000Dh
  186. SeeAlso: AX=000Eh,INT 10/AH=04h
  187. --------M-33000E-----------------------------
  188. INT 33 - MS MOUSE v1.0+ - LIGHT PEN EMULATION OFF
  189.     AX = 000Eh
  190. SeeAlso: AX=000Dh
  191. --------M-33000F-----------------------------
  192. INT 33 - MS MOUSE v1.0+ - DEFINE MICKEY/PIXEL RATIO
  193.     AX = 000Fh
  194.     CX = number of mickeys per 8 pixels horizontally (default 8)
  195.     DX = number of mickeys per 8 pixels vertically (default 16)
  196. SeeAlso: AX=0013h,AX=001Ah,INT 62/AX=0082h
  197. --------M-330010-----------------------------
  198. INT 33 - MS MOUSE v1.0+ - DEFINE SCREEN REGION FOR UPDATING
  199.     AX = 0010h
  200.     CX,DX = X,Y coordinates of upper left corner
  201.     SI,DI = X,Y coordinates of lower right corner
  202. Note:    mouse cursor is hidden in the specified region, and needs to be
  203.       explicitly turned on again
  204. SeeAlso: AX=0001h,AX=0002h,AX=0007h,AX=0010h"Genius MOUSE",AX=0031h
  205. --------M-330010-----------------------------
  206. INT 33 - Genius MOUSE - DEFINE SCREEN REGION FOR UPDATING
  207.     AX = 0010h
  208.     ES:DX -> update region list (see #2805)
  209. Notes:    mouse cursor is hidden in the specified region, and needs to be
  210.       explicitly turned on again
  211.     this version of the call is described in an August 1988 version of the
  212.       Genius Mouse programmer's reference; it has been changed to conform
  213.       to the Microsoft version shown above by version 9.06 (and possibly
  214.       earlier versions)
  215. SeeAlso: AX=0001h,AX=0002h,AX=0007h,AX=0010h"MS MOUSE"
  216.  
  217. Format of Genius Mouse update region list:
  218. Offset    Size    Description    (Table 2805)
  219.  00h    WORD    left-most column
  220.  02h    WORD    top-most row
  221.  04h    WORD    right-most column
  222.  06h    WORD    bottom-most row
  223. --------M-330011-----------------------------
  224. INT 33 - Genius Mouse 9.06 - GET NUMBER OF BUTTONS
  225.     AX = 0011h
  226. Return: AX = FFFFh
  227.     BX = number of buttons
  228. SeeAlso: AX=0000h
  229. --------M-330012-----------------------------
  230. INT 33 - MS MOUSE - SET LARGE GRAPHICS CURSOR BLOCK
  231.     AX = 0012h
  232.     BH = cursor width in words
  233.     CH = rows in cursor
  234.     BL = horizontal hot spot (-16 to 16)
  235.     CL = vertical hot spot (-16 to 16)
  236.     ES:DX -> bit map of screen and cursor maps
  237. Return: AX = FFFFh if successful
  238. SeeAlso: AX=0009h,AX=002Ah,AX=0035h
  239. --------M-330013-----------------------------
  240. INT 33 - MS MOUSE v5.0+ - DEFINE DOUBLE-SPEED THRESHOLD
  241.     AX = 0013h
  242.     DX = threshold speed in mickeys/second, 0000h = default of 64/second
  243. Note:    if speed exceeds threshold, the cursor's on-screen motion is doubled
  244. SeeAlso: AX=000Fh,AX=001Bh,AX=002Ch
  245. --------M-330014-----------------------------
  246. INT 33 - MS MOUSE v3.0+ - EXCHANGE INTERRUPT SUBROUTINES
  247.     AX = 0014h
  248.     CX = call mask (see #2803)
  249.     ES:DX -> FAR routine
  250. Return: CX = call mask of previous interrupt routine
  251.     ES:DX = FAR address of previous interrupt routine
  252. SeeAlso: AX=000Ch,AX=0018h
  253. --------M-330015-----------------------------
  254. INT 33 - MS MOUSE v6.0+ - RETURN DRIVER STORAGE REQUIREMENTS
  255.     AX = 0015h
  256. Return: BX = size of buffer needed to store driver state
  257. SeeAlso: AX=0016h,AX=0017h,AX=0042h
  258. --------M-330016-----------------------------
  259. INT 33 - MS MOUSE v6.0+ - SAVE DRIVER STATE
  260.     AX = 0016h
  261.     BX = size of buffer (see AX=0015h)
  262.     ES:DX -> buffer for driver state
  263. Note:    although not documented (since the Microsoft driver does not use it),
  264.       many drivers appear to require BX on input
  265. SeeAlso: AX=0015h,AX=0017h
  266. --------M-330017-----------------------------
  267. INT 33 - MS MOUSE v6.0+ - RESTORE DRIVER STATE
  268.     AX = 0017h
  269.     BX = size of buffer (see AX=0015h)
  270.     ES:DX -> buffer containing saved state
  271. Notes:    although not documented (since the Microsoft driver does not use it),
  272.       many drivers appear to require BX on input
  273.     some mouse drivers range-check the values in the saved state based on
  274.       the current video mode; thus, the video mode should be restored
  275.       before the mouse driver's state is restored
  276. SeeAlso: AX=0015h,AX=0016h
  277. --------M-330018-----------------------------
  278. INT 33 - MS MOUSE v6.0+ - SET ALTERNATE MOUSE USER HANDLER
  279.     AX = 0018h
  280.     CX = call mask (see #2806)
  281.     ES:DX -> FAR routine to be invoked on mouse events (see #2807)
  282. Return: AX = status
  283.         0018h if successful
  284.         FFFFh on error
  285. Notes:    up to three handlers can be defined by separate calls to this function,
  286.       each with a different combination of shift states in the call mask;
  287.       calling this function again with a call mask of 0000h undefines the
  288.       specified handler (official documentation); specifying the same
  289.       call mask and an address of 0000h:0000h undefines the handler (real
  290.       life)
  291.     some versions of the documentation erroneously reverse the order of
  292.       the bits in the call mask
  293. SeeAlso: AX=000Ch,AX=0014h,AX=0019h
  294.  
  295. Bitfields for mouse call mask:
  296. Bit(s)    Description    (Table 2806)
  297.  0    call if mouse moves
  298.  1    call if left button pressed
  299.  2    call if left button released
  300.  3    call if right button pressed
  301.  4    call if right button released
  302.  5    call if shift button pressed during event
  303.  6    call if ctrl key pressed during event
  304.  7    call if alt key pressed during event
  305. Note:    at least one of 5-7 must be set
  306.  
  307. (Table 2807)
  308. Values user handler is called with:
  309.     AX = condition mask (same bit assignments as call mask)
  310.     BX = button state
  311.     CX = cursor column
  312.     DX = cursor row
  313.     SI = horizontal mickey count
  314.     DI = vertical mickey count
  315. Return: registers preserved
  316. Note:    in text modes, the row and column will be reported as a multiple of
  317.       the cell size, typically 8x8 pixels
  318. --------M-330019-----------------------------
  319. INT 33 - MS MOUSE v6.0+ - RETURN USER ALTERNATE INTERRUPT VECTOR
  320.     AX = 0019h
  321.     CX = call mask (see #2806)
  322. Return: BX:DX = user interrupt vector
  323.     CX = call mask (0000h if not found)
  324. Note:    attempts to find a user event handler (defined by function 18h)
  325.       whose call mask matches CX
  326. SeeAlso: AX=0018h
  327. --------M-33001A-----------------------------
  328. INT 33 - MS MOUSE v6.0+ - SET MOUSE SENSITIVITY
  329.     AX = 001Ah
  330.     BX = horizontal speed \
  331.     CX = vertical speed   / (see AX=000Fh)
  332.     DX = double speed threshold (see AX=0013h)
  333. SeeAlso: AX=0013h,AX=001Bh,INT 62/AX=0082h
  334. --------M-33001B-----------------------------
  335. INT 33 - MS MOUSE v6.0+ - RETURN MOUSE SENSITIVITY
  336.     AX = 001Bh
  337. Return: BX = horizontal speed
  338.     CX = vertical speed
  339.     DX = double speed threshold
  340. SeeAlso: AX=000Bh,AX=001Ah
  341. --------M-33001C-----------------------------
  342. INT 33 - MS MOUSE v6.0+ - SET INTERRUPT RATE
  343.     AX = 001Ch
  344.     BX = rate (see #2808)
  345. Notes:    only available on InPort mouse
  346.     values greater than 4 may cause unpredictable driver behavior
  347.  
  348. (Table 2808)
  349. Values for mouse interrupt rate:
  350.  00h    no interrupts allowed
  351.  01h    30 per second
  352.  02h    50 per second
  353.  03h    100 per second
  354.  04h    200 per second
  355. --------M-33001D-----------------------------
  356. INT 33 - MS MOUSE v6.0+ - DEFINE DISPLAY PAGE NUMBER
  357.     AX = 001Dh
  358.     BX = display page number
  359. Note:    the cursor will be displayed on the specified page
  360. SeeAlso: AX=001Eh
  361. --------M-33001E-----------------------------
  362. INT 33 - MS MOUSE v6.0+ - RETURN DISPLAY PAGE NUMBER
  363.     AX = 001Eh
  364. Return: BX = display page number
  365. SeeAlso: AX=001Dh
  366. --------M-33001F-----------------------------
  367. INT 33 - MS MOUSE v6.0+ - DISABLE MOUSE DRIVER
  368.     AX = 001Fh
  369. Return: AX = status
  370.         001Fh successful
  371.         ES:BX = INT 33 vector before mouse driver was first installed
  372.         FFFFh unsuccessful
  373. Notes:    restores vectors for INT 10 and INT 71 (8086) or INT 74 (286/386)
  374.     if you restore INT 33 to ES:BX, driver will be completely disabled
  375.     many drivers return AX=001Fh even though the driver has been disabled
  376. SeeAlso: AX=0020h
  377. --------M-330020-----------------------------
  378. INT 33 - MS MOUSE v6.0+ - ENABLE MOUSE DRIVER
  379.     AX = 0020h
  380. Return: AX = status
  381.         0020h successful
  382.         FFFFh unsuccessful
  383. Notes:    restores vectors for INT 10h and INT 71h (8086) or INT 74h (286/386)
  384.       which were removed by function 1Fh
  385.     Microsoft's documentation states that no value is returned
  386. SeeAlso: AX=001Fh
  387. --------M-330021-----------------------------
  388. INT 33 - MS MOUSE v6.0+ - SOFTWARE RESET
  389.     AX = 0021h
  390. Return: AX = status
  391.         FFFFh if mouse driver installed
  392.         BX = number of buttons (FFFFh = two buttons)
  393.         0021h if mouse driver not installed
  394. Note:    this call is identical to funtion 00h, but does not reset the mouse
  395. SeeAlso: AX=0000h
  396. --------M-330022-----------------------------
  397. INT 33 - MS MOUSE v6.0+ - SET LANGUAGE FOR MESSAGES
  398.     AX = 0022h
  399.     BX = language (see #2809)
  400. Note:    only available on international versions of the driver; US versions
  401.       ignore this call
  402. SeeAlso: AX=0023h
  403.  
  404. (Table 2809)
  405. Values for mouse driver language:
  406.  00h    English
  407.  01h    French
  408.  02h    Dutch
  409.  03h    German
  410.  04h    Swedish
  411.  05h    Finnish
  412.  06h    Spanish
  413.  07h    Portugese
  414.  08h    Italian
  415. --------M-330023-----------------------------
  416. INT 33 - MS MOUSE v6.0+ - GET LANGUAGE FOR MESSAGES
  417.     AX = 0023h
  418. Return: BX = language (see #2809)
  419. Note:    the US version of the driver always returns zero
  420. SeeAlso: AX=0022h
  421. --------M-330024-----------------------------
  422. INT 33 - MS MOUSE v6.26+ - GET SOFTWARE VERSION, MOUSE TYPE, AND IRQ NUMBER
  423.     AX = 0024h
  424. Return: AX = FFFFh on error
  425.     otherwise,
  426.         BH = major version
  427.         BL = minor version
  428.         CH = type (1=bus, 2=serial, 3=InPort, 4=PS/2, 5=HP)
  429.         CL = interrupt (0=PS/2, 2=IRQ2, 3=IRQ3,...,7=IRQ7,...,0Fh=IRQ15)
  430. SeeAlso: AX=004Dh,AX=006Dh
  431. --------M-330025-----------------------------
  432. INT 33 - MS MOUSE v6.26+ - GET GENERAL DRIVER INFORMATION
  433.     AX = 0025h
  434. Return: AX = general information (see #2810)
  435.     BX = cursor lock flag for OS/2 to prevent reentrancy problems
  436.     CX = mouse code active flag (for OS/2)
  437.     DX = mouse driver busy flag (for OS/2)
  438.  
  439. Bitfields for general mouse driver information:
  440. Bit(s)    Description    (Table 2810)
  441.  15    driver loaded as device driver rather than TSR
  442.  14    driver is newer integrated type
  443.  13,12    current cursor type
  444.     00 software text cursor
  445.     01 hardware text cursor (CRT Controller's cursor)
  446.     1X graphics cursor
  447.  11-8    interrupt rate (see #2808)
  448.  7-0    count of currently-active Mouse Display Drivers (MDD), the newer
  449.       integrated driver type
  450. --------M-330026-----------------------------
  451. INT 33 - MS MOUSE v6.26+ - GET MAXIMUM VIRTUAL COORDINATES
  452.     AX = 0026h
  453. Return: BX = mouse-disabled flag (0000h mouse enabled, nonzero disabled)
  454.     CX = maximum virtual X (for current video mode)
  455.     DX = maximum virtual Y
  456. Note:    for driver versions before 7.05, this call returns the currently-set
  457.       maximum coordinates; v7.05+ returns the absolute maximum coordinates
  458. SeeAlso: AX=0031h
  459. --------M-330026-----------------------------
  460. INT 33 - Genius Mouse 9.06 - ???
  461.     AX = 0026h
  462. Return: CX = 0204h if CX was 0105h on entry, else unchanged
  463. --------M-330027-----------------------------
  464. INT 33 - MS MOUSE v7.01+ - GET SCREEN/CURSOR MASKS AND MICKEY COUNTS
  465.     AX = 0027h
  466. Return: AX = screen-mask value (or hardware cursor scan-line start for v7.02+)
  467.     BX = cursor-mask value (or hardware cursor scan-line stop for v7.02+)
  468.     CX = horizontal mickeys moved since last call
  469.     DX = vertical mickeys moved since last call
  470. SeeAlso: AX=000Bh
  471. --------M-330028-----------------------------
  472. INT 33 - MS MOUSE v7.0+ - SET VIDEO MODE
  473.     AX = 0028h
  474.     CX = new video mode (call is NOP if 0000h)
  475.     DH = Y font size (00h = default)
  476.     DL = X font size (00h = default)
  477. Return: CL = status (00h = successful)
  478. Notes:    DX is ignored unless the selected video mode supports font size control
  479.     when CX=0000h, an internal flag that had been set by a previous call
  480.       is cleared; this is required before a mouse reset
  481. SeeAlso: AX=0029h,INT 10/AH=00h
  482. --------M-330029-----------------------------
  483. INT 33 - MS MOUSE v7.0+ - ENUMERATE VIDEO MODES
  484.     AX = 0029h
  485.     CX = previous video mode
  486.         0000h get first supported video mode
  487.         other get next supported mode after mode CX
  488. Return: CX = first/next video mode (0000h = no more video modes)
  489.     DS:DX -> description of video mode or 0000h:0000h if none
  490. Notes:    the enumerated video modes may be in any order and may repeat
  491.     the description string (if available) is terminated by '$' followed by
  492.       a NUL byte
  493. SeeAlso: AX=0028h
  494. --------M-33002A-----------------------------
  495. INT 33 - MS MOUSE v7.02+ - GET CURSOR HOT SPOT
  496.     AX = 002Ah
  497. Return: AX = internal counter controlling cursor visibility
  498.     BX = cursor hot spot column
  499.     CX = cursor hot spot row
  500.     DX = mouse type (see #2811)
  501. Note:    the hot spot location is relative to the upper left corner of the
  502.       cursor block and may range from -128 to +127 both horizontally and
  503.       vertically
  504. SeeAlso: AX=0009h,AX=0012h,AX=0035h
  505.  
  506. (Table 2811)
  507. Values for mouse type:
  508.  00h    none
  509.  01h    bus
  510.  02h    serial
  511.  03h    InPort
  512.  04h    IBM
  513.  05h    Hewlett-Packard
  514. --------M-33002B-----------------------------
  515. INT 33 - MS MOUSE v7.0+ - LOAD ACCELERATION PROFILES
  516.     AX = 002Bh
  517.     BX = active acceleration profile
  518.         0001h-0004h or FFFFh to restore default curves
  519.     ES:SI -> buffer containing acceleration profile data (see #2812)
  520. Return: AX = success flag
  521. SeeAlso: AX=002Ch,AX=002Dh,AX=0033h
  522.  
  523. Format of acceleration profile data:
  524. Offset    Size    Description    (Table 2812)
  525.  00h    BYTE    length of acceleration profile 1
  526.  01h    BYTE    length of acceleration profile 2
  527.  02h    BYTE    length of acceleration profile 3
  528.  03h    BYTE    length of acceleration profile 4
  529.  04h 32 BYTEs    threshold speeds for acceleration profile 1
  530.  24h 32 BYTEs    threshold speeds for acceleration profile 2
  531.  44h 32 BYTEs    threshold speeds for acceleration profile 3
  532.  64h 32 BYTEs    threshold speeds for acceleration profile 4
  533.  84h 32 BYTEs    speedup factor for acceleration profile 1
  534.         (10h = 1.0, 14h = 1.25, 20h = 2.0, etc)
  535.  A4h 32 BYTEs    speedup factor for acceleration profile 2
  536.         (10h = 1.0, 14h = 1.25, 20h = 2.0, etc)
  537.  C4h 32 BYTEs    speedup factor for acceleration profile 3
  538.         (10h = 1.0, 14h = 1.25, 20h = 2.0, etc)
  539.  E4h 32 BYTEs    speedup factor for acceleration profile 4
  540.         (10h = 1.0, 14h = 1.25, 20h = 2.0, etc)
  541. 104h 16 BYTEs    name of acceleration profile 1 (blank-padded)
  542. 114h 16 BYTEs    name of acceleration profile 2 (blank-padded)
  543. 124h 16 BYTEs    name of acceleration profile 3 (blank-padded)
  544. 134h 16 BYTEs    name of acceleration profile 4 (blank-padded)
  545. Note:    unused bytes in the threshold speed fields are filled with 7Fh and
  546.       unused bytes in the speedup factor fields are filled with 10h
  547. --------M-33002C-----------------------------
  548. INT 33 - MS MOUSE v7.0+ - GET ACCELERATION PROFILES
  549.     AX = 002Ch
  550. Return: AX = status (0000h success)
  551.     BX = currently-active acceleration profile
  552.     ES:SI -> acceleration profile data (see #2812)
  553. SeeAlso: AX=002Bh,AX=002Dh,AX=0033h
  554. --------M-33002D-----------------------------
  555. INT 33 - MS MOUSE v7.0+ - SELECT ACCELERATION PROFILE
  556.     AX = 002Dh
  557.     BX = acceleration level
  558.         0001h-0004h to set profile, or FFFFh to get current profile
  559. Return: AX = status
  560.         0000h successful
  561.         ES:SI -> 16-byte blank-padded name of acceleration profile
  562.         FFFEh invalid acceleration curve number
  563.         ES:SI destroyed
  564.     BX = active acceleration curve number
  565. SeeAlso: AX=0013h,AX=002Bh,AX=002Ch,AX=002Eh
  566. --------M-33002E-----------------------------
  567. INT 33 - MS MOUSE v8.10+ - SET ACCELERATION PROFILE NAMES
  568.     AX = 002Eh
  569.     BL = flag (if nonzero, fill ES:SI buffer with default names on return)
  570.     ES:SI -> 64-byte buffer containing profile names (16 bytes per name)
  571. Return: AX = status (0000h success)
  572.         FFFEh error for ATI Mouse driver
  573.     ES:SI buffer filled with default names if BL nonzero on entry
  574. Notes:    not supported by Logitech driver v6.10
  575.     supported by ATI Mouse driver v7.04
  576. SeeAlso: AX=002Ch,AX=002Dh,AX=012Eh,AX=022Eh
  577. --------M-33002F-----------------------------
  578. INT 33 - MS MOUSE v7.02+ - MOUSE HARDWARE RESET
  579.     AX = 002Fh
  580. Return: AX = status
  581. Note:    invoked by mouse driver v8.20 on being called with INT 2F/AX=530Bh
  582. SeeAlso: INT 2F/AH=53h
  583. --------M-330030-----------------------------
  584. INT 33 - MS MOUSE v7.04+ - GET/SET BallPoint INFORMATION
  585.     AX = 0030h
  586.     CX = command
  587.         0000h get status of BallPoint device
  588.         other set rotation angle and masks
  589.         BX = rotation angle (-32768 to 32767 degrees)
  590.         CH = primary button mask
  591.         CL = secondary button mask
  592. Return: AX = button status (FFFFh if no BallPoint) (see #2813)
  593.     BX = rotation angle (0-360 degrees)
  594.     CH = primary button mask
  595.     CL = secondary button mask
  596. Note:    not supported by the ATI Mouse driver which calls itself v7.04
  597.  
  598. Bitfields for BallPoint mouse button status:
  599. Bit(s)    Description    (Table 2813)
  600.  5    button 1
  601.  4    button 2
  602.  3    button 3
  603.  2    button 4
  604.  other    zero
  605. --------M-330031-----------------------------
  606. INT 33 - MS MOUSE v7.05+ - GET CURRENT MINIMUM/MAXIMUM VIRTUAL COORDINATES
  607.     AX = 0031h
  608. Return: AX = virtual X minimum
  609.     BX = virtual Y minimum
  610.     CX = virtual X maximum
  611.     DX = virtual Y maximum
  612. Note:    the minimum and maximum values are those set by AX=0007h and AX=0008h;
  613.       the default is minimum = 0 and maximum = absolute maximum
  614.       (see AX=0026h)
  615. SeeAlso: AX=0007h,AX=0008h,AX=0010h,AX=0026h
  616. --------M-330032-----------------------------
  617. INT 33 - MS MOUSE v7.05+ - GET ACTIVE ADVANCED FUNCTIONS
  618.     AX = 0032h
  619. Return: AX = active function flags (FFFFh for v8.10)
  620.         bit 15: function 0025h supported
  621.         bit 14: function 0026h supported
  622.         ...
  623.         bit 0:  function 0034h supported
  624.     BX = ??? (0000h) officially unused
  625.     CX = ??? (E000h) officially unused
  626.     DX = ??? (0000h) officially unused
  627. Note:    the Italian version of MS MOUSE v8.20 reportedly indicates that
  628.       functions 0033h and 0034h are not supported even though they are
  629. --------M-330033-----------------------------
  630. INT 33 - MS MOUSE v7.05+ - GET SWITCH SETTINGS AND ACCELERATION PROFILE DATA
  631.     AX = 0033h
  632.     CX = size of buffer
  633.         0000h get required buffer size
  634.         Return: AX = 0000h
  635.             CX = required size (0154h for Logitech v6.10, 0159h
  636.                 for MS v8.10-8.20)
  637.         other
  638.         ES:DX -> buffer of CX bytes for mouse settings
  639.         Return: AX = 0000h
  640.             CX = number of bytes returned
  641.             ES:DX buffer filled (see #2814)
  642. SeeAlso: AX=002Bh
  643.  
  644. Format of mouse settings data buffer:
  645. Offset    Size    Description    (Table 2814)
  646.  00h    BYTE    mouse type
  647.  01h    BYTE    current language
  648.  02h    BYTE    horizontal sensitivity (00h-64h)
  649.  03h    BYTE    vertical sensitivity (00h-64h)
  650.  04h    BYTE    double-speed threshold (00h-64h)
  651.  05h    BYTE    ballistic curve (01h-04h)
  652.  06h    BYTE    interrupt rate (01h-04h)
  653.  07h    BYTE    cursor override mask
  654.  08h    BYTE    laptop adjustment
  655.  09h    BYTE    memory type (00h-02h)
  656.  0Ah    BYTE    SuperVGA support (00h,01h)
  657.  0Bh    BYTE    rotation angle
  658.  0Ch    BYTE    ???
  659.  0Dh    BYTE    primary button (01h-04h)
  660.  0Eh    BYTE    secondary button (01h-04h)
  661.  0Fh    BYTE    click lock enabled (00h,01h)
  662.  10h 324 BYTEs    acceleration profile data (see #2812)
  663. 154h  5 BYTEs    ??? (Microsoft driver, but not Logitech)
  664. --------M-330034-----------------------------
  665. INT 33 - MS MOUSE v8.0+ - GET INITIALIZATION FILE
  666.     AX = 0034h
  667. Return: AX = status (0000h successful)
  668.     ES:DX -> ASCIZ initialization (.INI) file name
  669. --------M-330035-----------------------------
  670. INT 33 - MS MOUSE v8.10+ - LCD SCREEN LARGE POINTER SUPPORT
  671.     AX = 0035h
  672.     BX = function
  673.         FFFFh get current settings
  674.         Return: AX = 0000h
  675.             BH = style (see #2815)
  676.             BL = size (see #2816)
  677.             CH = threshold (00h-64h)
  678.             CL = active flag (00h disabled, 01h enabled)
  679.             DX = delay
  680.         other
  681.         BH = pointer style (see #2815)
  682.         BL = size (see #2816)
  683.         CH = threshold (00h-64h)
  684.         CL = active flag (00h disable size change, 01h enable)
  685.         DX = delay (0000h-0064h)
  686.         Return: AX = 0000h
  687. Note:    not supported by Logitech driver v6.10
  688. SeeAlso: AX=0012h,AX=002Ah
  689.  
  690. (Table 2815)
  691. Values for pointer style:
  692.  00h    normal
  693.  01h    reverse
  694.  02h    transparent
  695. SeeAlso: #2816
  696.  
  697. (Table 2816)
  698. Values for pointer size:
  699.  00h    small ("1")
  700.  01h    medium ("1.5")
  701.  02h    large ("2")
  702. SeeAlso: #2815
  703. --------M-330042-----------------------------
  704. INT 33 - PCMOUSE - GET MSMOUSE STORAGE REQUIREMENTS
  705.     AX = 0042h
  706. Return: AX = status
  707.         0000h MSMOUSE not installed
  708.         0042h functions 42h, 50h, and 52h not supported
  709.         FFFFh successful
  710.         BX = buffer size in bytes for functions 50h and 52h
  711. Note:    this function is also supported by the Genius Mouse 9.06 driver
  712. SeeAlso: AX=0015h,AX=0050h,AX=0052h
  713. --------M-330043-----------------------------
  714. INT 33 - Mouse Systems MOUSE DRIVER v7.01+ - CONFIGURE MOUSE???
  715.     AX = 0043h
  716.     CX:BX -> configuration buffer (see #2817)
  717.     DL = ???
  718. Return: ???
  719. Notes:    also calls routines for INT 33/AX=0053h and INT 33/AX=004Fh
  720.     this function is also supported by the Genius Mouse 9.06 driver
  721.  
  722. Format of Mouse Systems configuration buffer:
  723. Offset    Size    Description    (Table 2817)
  724.  00h    WORD    I/O port address
  725.  02h    BYTE    ???
  726.  03h    BYTE    interrupt number
  727.  04h    BYTE    interrupt mask for interrupt controller
  728.  05h  5 BYTEs    ???
  729. --------M-330044CXCDEF-----------------------
  730. INT 33 - Mouse Systems MOUSE DRIVER v7.01+ - TOGGLE IGNORE ACCELERATION CMDS
  731.     AX = 0044h
  732.     CX = CDEFh
  733. Return: AX = new state of "Ignore Application Acceleration Commands" flag
  734. Note:    this function is also supported by the Genius Mouse 9.06 driver
  735. SeeAlso: AX=0045h
  736. --------M-330045CXCDEF-----------------------
  737. INT 33 - Mouse Systems MOUSE DRIVER v7.01+ - TOGGLE RESOLUTION DOUBLING
  738.     AX = 0045h
  739.     CX = CDEFh
  740. Return: AX = new state of resolution doubling flag
  741. Note:    this function is also supported by the Genius Mouse 9.06 driver
  742. SeeAlso: AX=0044h
  743. --------M-330047-----------------------------
  744. INT 33 - Mouse Systems MOUSE DRIVER v7.01+ - SET BUTTON ASSIGNMENTS
  745.     AX = 0047h
  746.     ES:BX -> button assignments (3 bytes, combinations of "L", "M", "R")
  747. Return: ???
  748. Note:    also supported by Genius Mouse 9.06 driver
  749. SeeAlso: AX=0067h
  750. --------M-330048BXCDEF-----------------------
  751. INT 33 - Mouse Systems MOUSE DRIVER v7.01+ - GET ???
  752.     AX = 0048h
  753.     BX = CDEFh
  754. Return: CX = ???
  755.     BH = ???
  756.     BL = ??? (if 50h, driver is using PS/2 pointing device BIOS interface)
  757. Note:    also supported by Genius Mouse 9.06 driver
  758. --------M-33004B-----------------------------
  759. INT 33 - LCS/Telegraphics MOUSE DRIVERS - INSTALLATION CHECK / GET VERSION
  760.     AX = 004Bh
  761. Return: ES:DI -> ASCIZ signature/description string if installed (see #2818)
  762.  
  763. (Table 2818)
  764. Values for LCS/Telegraphics mouse driver OEM signature/description string:
  765.  "Primax Generic;Universal Mouse Driver;IMOUSE;v8.20i"
  766.  "Synaptics;TouchPad Driver;SYNTOUCH;v2.26"
  767.  "Z-NIX;BUS,AUX,Serial 3-byte and 5-byte Mouse Driver;ZMOUSE;v7.04d"
  768. Note:    the string consists of OEM, driver description, driver name, and
  769.       version number
  770. --------M-33004CBXCDEF-----------------------
  771. INT 33 - Mouse Systems MOUSE DRIVER v7.01+ - SET ??? FLAG
  772.     AX = 004Ch
  773.     BX = CDEFh
  774. Note:    also supported by Genius Mouse 9.06
  775. SeeAlso: AX=006Ch
  776. --------M-33004D-----------------------------
  777. INT 33 - MS MOUSE - RETURN POINTER TO COPYRIGHT STRING
  778.     AX = 004Dh
  779. Return: ES:DI -> copyright message "*** This is Copyright 1983 Microsoft" or
  780.         "Copyright 19XX...."
  781. Notes:    also supported by Logitech, Kraft, Genius Mouse, and Mouse Systems
  782.       mouse drivers
  783.     in the Genius Mouse 9.06 driver, the ASCIZ signature "KYE" immediately
  784.       follows the above copyright message (KYE Corp. manufactures the
  785.       driver)
  786. SeeAlso: AX=0024h,AX=006Dh,AX=0666h
  787. --------M-33004F-----------------------------
  788. INT 33 - Mouse Systems MOUSE DRIVER v7.01+ - ENABLE MOUSE
  789.     AX = 004Fh
  790. Return: nothing
  791. Note:    also supported by Genius Mouse 9.06
  792. SeeAlso: AX=0043h,AX=0053h
  793. --------M-330050-----------------------------
  794. INT 33 - PCMOUSE - SAVE MSMOUSE STATE
  795.     AX = 0050h
  796.     BX = buffer size (ignored by some driver versions)
  797.     ES:DX -> buffer
  798. Return: AX = FFFFh if successful
  799. Notes:    the buffer must be large enough to hold the entire state, or following
  800.       data will be overwritten by state data in versions which ignore BX;
  801.       use INT 33/AX=0042h to get the required size
  802.     this function is also supported by the Genius Mouse 9.06 driver
  803. SeeAlso: AX=0042h,AX=0052h
  804. --------M-330052-----------------------------
  805. INT 33 - PCMOUSE - RESTORE MSMOUSE STATE
  806.     AX = 0052h
  807.     BX = buffer size (ignored by some driver versions)
  808.     ES:DX -> buffer
  809. Return: AX = FFFFh if successful
  810. Note:    also supported by Genius Mouse 9.06 driver
  811. SeeAlso: AX=0050h
  812. --------M-330053-----------------------------
  813. INT 33 - Mouse Systems MOUSE DRIVER v7.01+ - DISABLE MOUSE
  814.     AX = 0053h
  815. Return: nothing
  816. Note:    also supported by Genius Mouse 9.06
  817. SeeAlso: AX=0043h,AX=004Fh
  818. --------M-330054CXCDEF-----------------------
  819. INT 33 - Mouse Systems MOUSE DRIVER v7.01+ - SELECT ULTRARES ACCELERATION LEVEL
  820.     AX = 0054h
  821.     CX = CDEFh
  822.     BX = new acceleration level (0-9)
  823. Return: ???
  824. Note:    this function is also supported by the Genius Mouse 9.06 driver
  825. SeeAlso: AX=005Ah
  826. --------M-330055-----------------------------
  827. INT 33 - Kraft Mouse - GET ???
  828.     AX = 0055h
  829. Return: CX = ???
  830.     DX = ???
  831.     ES = ???
  832. --------M-330058-----------------------------
  833. INT 33 - Mouse Systems MOUSE DRIVER v7.01+ - ???
  834.     AX = 0058h
  835. Return: AX = CS of driver
  836.     CX:BX = original INT 33 vector
  837.     DX = ???
  838. Note:    this function is also supported by the Genius Mouse 9.06 driver
  839. --------M-33005A-----------------------------
  840. INT 33 - Mouse Systems MOUSE DRIVER v7.01+ - SET ULTRARES ACCELERATIONS
  841.     AX = 005Ah
  842.     CX = number of WORDs to copy (max 0014h, but not range-checked)
  843.     DX:SI -> buffer containing thresholds??? (CX words)
  844.     DX:BX -> buffer containing acceleration values???
  845.         (9*14h words, only first CX of each 14h used)
  846.     ???
  847. Return: CF clear
  848.     ???
  849. Note:    this function is also supported by Genius Mouse 9.06
  850. SeeAlso: AX=0054h
  851. --------M-330061BXCDEF-----------------------
  852. INT 33 - Mouse Systems MOUSE DRIVER v7.01+ - ???
  853.     AX = 0061h
  854.     BX = CDEFh
  855. Return: CX = ???
  856. Note:    also supported by Genius Mouse 9.06
  857. --------M-330067-----------------------------
  858. INT 33 - Mouse Systems MOUSE DRIVER v7.01+ - GET MOUSE BUTTONS???
  859.     AX = 0067h
  860. Return: BL = number of buttons???
  861. Note:    also supported by Genius Mouse 9.06
  862. SeeAlso: AX=0047h
  863. --------M-33006A-----------------------------
  864. INT 33 U - ATI Mouse - INSTALLATION CHECK
  865.     AX = 006Ah
  866. Return: AL = AAh
  867.     AH = ???
  868.     BH = ???
  869.     BL = ???
  870.     CL = ???
  871.     CH = ???
  872. Program: ATI's MOUSE.COM and MOUSE.SYS are drivers for the mouse port found on
  873.       some of ATI's video adapters
  874. SeeAlso: AX=006Dh
  875. --------M-33006C-----------------------------
  876. INT 33 U - TRUEDOX Mouse driver v4.01 - GET/SET HARDWARE PARAMETERS
  877.     AX = 006Ch
  878.     BX = new IRQ (0003h or 0004h), or 0000h to get current values only
  879.     CL = new IRQmask (sent to 8259)
  880.     DX = new base I/O port
  881. Return: BX = current IRQ
  882.     DX = light pen state???
  883. Note:    this is the mouse driver for the Dell Dimension series of computers, by
  884.       TRUEDOX Technology Corporation
  885. SeeAlso: AX=00A1h,AX=0666h
  886. --------M-33006CBXCDEF-----------------------
  887. INT 33 - Mouse Systems MOUSE DRIVER v7.01+ - CLEAR ??? FLAG
  888.     AX = 006Ch
  889.     BX = CDEFh
  890. Note:    also supported by Genius Mouse 9.06
  891. SeeAlso: AX=004Ch
  892. --------M-33006D-----------------------------
  893. INT 33 - MS MOUSE - GET VERSION STRING
  894.     AX = 006Dh
  895. Return: ES:DI -> Microsoft version number of resident driver (see #2819)
  896. Notes:    also supported by Logitech, Mouse Systems, Kraft, and Genius mouse
  897.       drivers
  898.     the Mouse Systems 7.01 and Genius Mouse 9.06 drivers report their
  899.       Microsoft version as 7.00 even though they do not support any of the
  900.       functions from 0025h through 002Dh supported by the MS 7.00 driver
  901.       (the Genius Mouse driver supports function 0026h, but it differs
  902.       from the Microsoft function)
  903.     the TRUEDOX 4.01 driver reports its version as 6.26 through this call,
  904.       but as 6.24 through AX=0024h
  905. SeeAlso: AX=0024h,AX=004Dh,AX=006Ah,AX=266Ch
  906.  
  907. Format of Microsoft version number:
  908. Offset    Size    Description    (Table 2819)
  909.  00h    BYTE    major version
  910.  01h    BYTE    minor version (BCD)
  911. --------M-330070BXABCD-----------------------
  912. INT 33 - Mouse Systems MOUSE DRIVER - POPUP.COM - INSTALLATION CHECK
  913.     AX = 0070h
  914.     BX = ABCDh
  915. Return: AX = ABCDh if installed
  916.         BX:CX -> data structure (see #2820)
  917. Notes:    this function is also supported by the Genius Mouse 9.06 driver
  918.     the v7.01 POPUP.COM and menu drivers also check for the signature
  919.       CDh ABh BAh DCh at offset -2Ch from the interrupt handler
  920.     if POPUP is not loaded, the returned data structure contains the proper
  921.       signature at offset 00h, but not at offset 08h
  922.  
  923. Format of Mouse Systems POPUP.COM data structure:
  924. Offset    Size    Description    (Table 2820)
  925.  00h    WORD    signature ABCDh
  926.  02h    DWORD    pointer to info structure??? (see #2821)
  927.  06h  2 BYTEs    ???
  928.  08h    WORD    signature ABCDh
  929.  
  930. Format of Mouse Systems POPUP.COM info structure:
  931. Offset    Size    Description    (Table 2821)
  932.  00h    WORD    driver version
  933.  02h  8 BYTEs    ???
  934.  0Ah    WORD    segment of ???
  935.     ???
  936. --------M-330072BXABCD-----------------------
  937. INT 33 - Mouse Systems MOUSE DRIVER v7.01+ - ???
  938.     AX = 0072h
  939.     BX = ABCDh
  940. Return: ???
  941. Note:    this function is also supported by the Genius Mouse 9.06 driver
  942. --------M-330073BXCDEF-----------------------
  943. INT 33 - Mouse Systems MOUSE DRIVER v7.01+ - GET BUTTON ASSIGNMENTS
  944.     AX = 0073h
  945.     BX = CDEFh
  946.     ES:DX -> 3-byte buffer for button assignments
  947. Return: CX = number of buttons???
  948.     ES:DX buffer filled (default is "LMR")
  949. Note:    also supported by Genius Mouse 9.06
  950. SeeAlso: AX=0067h
  951. --------M-3300A0-----------------------------
  952. INT 33 U - TRUEDOX Mouse driver - SET HARDWARE PC MODE (3 button)
  953.     AX = 00A0h
  954. Return: nothing
  955. Note:    this function is only available if the mouse mode is switchable
  956.       through the power pins
  957. SeeAlso: AX=006Ch"TRUEDOX",AX=00A1h"TRUEDOX"
  958. --------M-3300A1-----------------------------
  959. INT 33 U - TRUEDOX Mouse driver - SET HARDWARE MS MODE (2 button)
  960.     AX = 00A1h
  961. Return: nothing
  962. Notes:    this function is only available if the mouse mode is switchable
  963.       through the power pins
  964.     this is the mouse driver for the Dell Dimension series of computers, by
  965.       TRUEDOX Technology Corporation
  966. SeeAlso: AX=006Ch"TRUEDOX",AX=00A0h"TRUEDOX",AX=00A6h,AX=0666h
  967. --------M-3300A6-----------------------------
  968. INT 33 U - TRUEDOX Mouse driver - SET RESOLUTION
  969.     AX = 00A6h
  970.     BX = new software resolution
  971.         0001h 50-200 dpi
  972.         0002h 200-400 dpi
  973.         0003h 400-800 dpi
  974. Note:    this is the mouse driver for the Dell Dimension series of computers, by
  975.       TRUEDOX Technology Corporation
  976. SeeAlso: AX=00A0h,AX=00A1h,AX=0666h
  977. --------M-3300B0-----------------------------
  978. INT 33 U - LCS/Telegraphics MOUSE DRIVERS - ???
  979.     AX = 00B0h
  980.     ???
  981. Return: ???
  982. --------M-3300F0-----------------------------
  983. INT 33 U - LCS/Telegraphics MOUSE DRIVERS - ???
  984.     AX = 00F0h
  985.     ???
  986. Return: ???
  987. --------M-3300F1-----------------------------
  988. INT 33 U - LCS/Telegraphics MOUSE DRIVERS - ???
  989.     AX = 00F1h
  990.     ???
  991. Return: ???
  992. --------M-3300F2-----------------------------
  993. INT 33 U - LCS/Telegraphics MOUSE DRIVERS - ???
  994.     AX = 00F2h
  995.     ???
  996. Return: ???
  997. --------M-3300F3-----------------------------
  998. INT 33 U - LCS/Telegraphics MOUSE DRIVERS - ???
  999.     AX = 00F3h
  1000.     ???
  1001. Return: ???
  1002. --------M-330100CX4752-----------------------
  1003. INT 33 - GRTMOUSE v1.00+ - INSTALLATION CHECK
  1004.     AX = 0100h
  1005.     CX = 4752h ('GR')
  1006.     DX = 544Dh ('TM')
  1007. Return: AX = 474Dh ('GM') if installed
  1008.         CX = version number (CH = major, CL = minor)
  1009. Program: GRTMOUSE is a graphical-cursor driver for textmode by Tommer Leyvand
  1010. SeeAlso: AX=0101h,AX=0102h,AX=0103h,AX=0104h
  1011. --------M-330101-----------------------------
  1012. INT 33 - GRTMOUSE v1.00+ - SET MOUSE CURSOR SHAPE
  1013.     AX = 0101h
  1014.     DS:SI -> 16-byte cursor pattern
  1015. Return: CF clear if successful
  1016. SeeAlso: AX=0100h,AX=0102h
  1017. --------M-330102-----------------------------
  1018. INT 33 - GRTMOUSE v1.00+ - GET MOUSE CURSOR SHAPE
  1019.     AX = 0102h
  1020.     ES:DI -> 16-byte buffer for cursor pattern
  1021. SeeAlso: AX=0100h,AX=0101h
  1022. --------M-330103-----------------------------
  1023. INT 33 - GRTMOUSE v1.00+ - SET ACTIVE CHARACTERS
  1024.     AX = 0103h
  1025.     CH,CL,DH,DL = ASCII codes to be remapped to display mouse pointer
  1026. Note:    the default active characters are D0h,D1h,D6h,D8h; the active
  1027.      characters should be in the range C0h to DFh
  1028. SeeAlso: AX=0100h,AX=0104h
  1029. --------M-330104-----------------------------
  1030. INT 33 - GRTMOUSE v1.00+ - GET ACTIVE CHARACTERS
  1031.     AX = 0104h
  1032. Return: CH,CL,DH,DL = ASCII codes for the active characters
  1033. SeeAlso: AX=0100h,AX=0103h
  1034. --------M-33012E-----------------------------
  1035. INT 33 - MS MOUSE v8.10+ - ???
  1036.     AX = 012Eh
  1037.     BL = ???
  1038. Return: AX = 0000h (MS)
  1039.     AX = FFFFh (ATI Mouse v7.04)
  1040. Note:    not supported by Logitech driver v6.10
  1041. SeeAlso: AX=002Eh,AX=022Eh
  1042. --------M-33022E-----------------------------
  1043. INT 33 - MS MOUSE v8.10+ - ???
  1044.     AX = 022Eh
  1045.     BL = ???
  1046. Return: AX = 0000h (MS)
  1047.     AX = FFFFh (ATI Mouse v7.04)
  1048. Note:    not supported by Logitech driver v6.10
  1049. SeeAlso: AX=002Eh,AX=012Eh
  1050. --------M-330666-----------------------------
  1051. INT 33 U - TRUEDOX Mouse driver v4.01 - GET COPYRIGHT STRING
  1052.     AX = 0666h
  1053. Return: DX:AX -> ASCII "Copyright 1987-1992 TRUEDOX Technology Corporation"
  1054. Note:    this is the mouse driver for the Dell Dimension series of computers,
  1055.       by TRUEDOX Technology Corporation
  1056. SeeAlso: AX=004Dh,AX=00A6h,AX=0666h
  1057. --------M-33136C-----------------------------
  1058. INT 33 - LOGITECH MOUSE v6.10+ - ???
  1059.     AX = 136Ch
  1060.     BX = ???
  1061. Return: AX = ???
  1062.     BX = ???
  1063. --------M-33146C-----------------------------
  1064. INT 33 - LOGITECH MOUSE v6.10+ - GET/SET ???
  1065.     AX = 146Ch
  1066.     BL = function
  1067.         00h set ???
  1068.         BH = new value (zero/nonzero to clear/set)
  1069.         else get ???
  1070.         Return: ???
  1071. --------M-33156C-----------------------------
  1072. INT 33 - LOGITECH MOUSE v6.10+ - GET SIGNATURE AND VERSION STRINGS
  1073.     AX = 156Ch
  1074. Return: ES:DI -> signature "LOGITECH MOUSE DRIVER"
  1075.     ES:SI -> version string, terminated with CRLF
  1076. --------M-33166C-----------------------------
  1077. INT 33 - LOGITECH MOUSE v6.10+ - ???
  1078.     AX = 166Ch
  1079.     BL = ???
  1080.         00h ???
  1081.         01h ???
  1082.         other ???
  1083.         BH = new value of ???
  1084.         Return: AX = FFFFh
  1085. --------M-33176C-----------------------------
  1086. INT 33 - LOGITECH MOUSE v6.10+ - ???
  1087.     AX = 176Ch
  1088.     ???
  1089. Return: ???
  1090. --------M-33186C-----------------------------
  1091. INT 33 - LOGITECH MOUSE v6.10+ - ???
  1092.     AX = 186Ch
  1093.     ???
  1094. Return: ???
  1095. --------M-33196C-----------------------------
  1096. INT 33 - LOGITECH MOUSE v6.10+ - ???
  1097.     AX = 196Ch
  1098.     ???
  1099. Return: ???
  1100. --------M-331A6C-----------------------------
  1101. INT 33 - LOGITECH MOUSE v6.10+ - GET ???
  1102.     AX = 1A6Ch
  1103. Return: AX = FFFFh
  1104.     BX = ???
  1105.     CX = ???
  1106. SeeAlso: AX=1B6Ch
  1107. --------M-331B6C-----------------------------
  1108. INT 33 - LOGITECH MOUSE v6.10+ - SET ???
  1109.     AX = 1B6Ch
  1110.     BX = new value for ??? (0000h-0003h)
  1111. Return: AX = FFFFh
  1112. SeeAlso: AX=1A6Ch
  1113. --------M-331C6C-----------------------------
  1114. INT 33 - LOGITECH MOUSE v6.10+ - ???
  1115.     AX = 1C6Ch
  1116.     BX = ???
  1117.         <42h ???
  1118.         =42h ???
  1119.         >42h ???
  1120.         ES:DI -> ???
  1121.         Return: AX = ???
  1122. --------M-331D6C-----------------------------
  1123. INT 33 - LOGITECH MOUSE - GET COMPASS PARAMETER
  1124.     AX = 1D6Ch
  1125. Return: BX = direction (0=north, 1=south, 2=east, 3=west)
  1126. SeeAlso: AX=1E6Ch
  1127. --------M-331E6C-----------------------------
  1128. INT 33 - LOGITECH MOUSE - SET COMPASS PARAMETER
  1129.     AX = 1E6Ch
  1130.     BX = direction (0=north, 1=south, 2=east, 3=west)
  1131. SeeAlso: AX=1D6Ch
  1132. --------M-331F6C-----------------------------
  1133. INT 33 - LOGITECH MOUSE - GET BALLISTICS INFORMATION
  1134.     AX = 1F6Ch
  1135. Return: BX = 0=off, 1=on
  1136.     CX = 1=low, 2=high
  1137. SeeAlso: AX=002Ch,AX=236Ch
  1138. --------M-33206C-----------------------------
  1139. INT 33 - LOGITECH MOUSE - SET LEFT OR RIGHT PARAMETER
  1140.     AX = 206Ch
  1141.     BX = parameter (00h = right, FFh = left)
  1142. SeeAlso: AX=216Ch
  1143. --------M-33216C-----------------------------
  1144. INT 33 - LOGITECH MOUSE - GET LEFT OR RIGHT PARAMETER
  1145.     AX = 216Ch
  1146. Return: BX = parameter (00h = right, FFh = left)
  1147. SeeAlso: AX=206Ch
  1148. --------M-33226C-----------------------------
  1149. INT 33 - LOGITECH MOUSE - REMOVE DRIVER FROM MEMORY
  1150.     AX = 226Ch
  1151. Note:    this only frees memory; does not restore hooked interrupts
  1152. --------M-33236C-----------------------------
  1153. INT 33 - LOGITECH MOUSE - SET BALLISTICS INFORMATION
  1154.     AX = 236Ch
  1155.     BX = 0=off, 1=on
  1156.     CX = 1=low, 2=high
  1157. SeeAlso: AX=002Ch,AX=1F6Ch
  1158. --------M-33246C-----------------------------
  1159. INT 33 - LOGITECH MOUSE - GET PARAMETERS AND RESET SERIAL MOUSE
  1160.     AX = 246Ch
  1161.     ES:DX -> parameter table buffer (see #2822)
  1162. Return: AX = FFFFh if driver installed for serial mouse
  1163. SeeAlso: AX=0000h,AX=256Ch/BX=0000h,AX=256Ch/BX=0001h,AX=256Ch/BX=0003h
  1164.  
  1165. Format of Logitech Mouse parameter table:
  1166. Offset    Size    Description    (Table 2822)
  1167.  00h    WORD    baud rate divided by 100  (serial mouse only)
  1168.  02h    WORD    emulation          (serial mouse only)
  1169.  04h    WORD    report rate          (serial mouse only)
  1170.  06h    WORD    firmware revision      (serial mouse only)
  1171.  08h    WORD    00h              (serial mouse only)
  1172.  0Ah    WORD    port              (serial mouse only)
  1173.  0Ch    WORD    physical buttons
  1174.  0Eh    WORD    logical buttons
  1175. --------M-33256CBX0000-----------------------
  1176. INT 33 - LOGITECH MOUSE - SET PARAMETERS - SET BAUD RATE (SERIAL MOUSE ONLY)
  1177.     AX = 256Ch
  1178.     BX = 0000h
  1179.     CX = rate (0=1200, 1=2400, 2=4800, 3=9600)
  1180. Return: AX = FFFFh if driver installed for serial mouse
  1181. SeeAlso: AX=246Ch,AX=256Ch/BX=0001h,AX=256Ch/BX=0002h,AX=276Ch
  1182. --------M-33256CBX0001-----------------------
  1183. INT 33 - LOGITECH MOUSE - SET PARAMETERS - SET EMULATION (SERIAL MOUSE ONLY)
  1184.     AX = 256Ch
  1185.     BX = 0001h
  1186.     CX = emulation type (see #2823)
  1187. Return: AX = FFFFh if driver installed for serial mouse
  1188. SeeAlso: AX=246Ch,AX=256Ch/BX=0000h,AX=256Ch/BX=0003h,AX=276Ch
  1189.  
  1190. (Table 2823)
  1191. Values for Logitech mouse emulation type:
  1192.  00h    5 byte packed binary
  1193.  01h    3 byte packed binary
  1194.  02h    hexadecimal
  1195.  03h    relative bit pad
  1196.  04h    not supported
  1197.  05h    MM Series
  1198.  06h    not supported
  1199.  07h    Microsoft
  1200. --------M-33256CBX0002-----------------------
  1201. INT 33 - LOGITECH MOUSE - SET PARAMETERS - SET REPORT RATE (SERIAL MOUSE ONLY)
  1202.     AX = 256Ch
  1203.     BX = 0002h
  1204.     CX = rate (0=10, 1=20, 2=35, 3=50, 4=70, 5=100, 6=150)
  1205. Return: AX = FFFFh if driver installed for serial mouse
  1206. SeeAlso: AX=246Ch,AX=256Ch/BX=0001h,AX=256Ch/BX=0003h,AX=276Ch
  1207. --------M-33256CBX0003-----------------------
  1208. INT 33 - LOGITECH MOUSE - SET PARAMETERS - SET MOUSE PORT (SERIAL MOUSE ONLY)
  1209.     AX = 256Ch
  1210.     BX = 0003h
  1211.     CX = port (1, 2)
  1212. Return: AX = FFFFh if driver installed for serial mouse
  1213. SeeAlso: AX=246Ch,AX=256Ch/BX=0000h,AX=256Ch/BX=0004h,AX=276Ch
  1214. --------M-33256CBX0004-----------------------
  1215. INT 33 - LOGITECH MOUSE - SET PARAMETERS - SET MOUSE LOGICAL BUTTONS
  1216.     AX = 256Ch
  1217.     BX = 0004h
  1218.     CX = buttons (2, 3)
  1219. Return: AX = FFFFh if driver installed for serial mouse
  1220. SeeAlso: AX=246Ch,AX=276Ch
  1221. --------M-33266C-----------------------------
  1222. INT 33 - LOGITECH MOUSE - GET VERSION???
  1223.     AX = 266Ch
  1224. Return: BX = 'SS'
  1225.     CH = '4'  major version number
  1226.     CL = '1'  minor version number
  1227. SeeAlso: AX=006Dh
  1228. --------M-33276C-----------------------------
  1229. INT 33 - LOGITECH MOUSE - ??? Tries MMSeries, Baud 2400
  1230.     AX = 276Ch
  1231. SeeAlso: AX=256Ch
  1232. --------M-333000-----------------------------
  1233. INT 33 - Smooth Mouse Driver, PrecisePoint - INSTALLATION CHECK
  1234.     AX = 3000h
  1235. Return: AX = FFFFh if installed
  1236.         BX = version number (BH = major, BL = minor)
  1237. Program: SMD is a programmer's library by Andy Hakim which provides a
  1238.       graphics-style mouse cursor in text mode.  PrecisePoint is an
  1239.       SMD-based TSR which replaces the block mouse cursor in text
  1240.       applications.
  1241. SeeAlso: AX=0000h,AX=3001h,AX=3003h
  1242. --------M-333001-----------------------------
  1243. INT 33 - Smooth Mouse Driver, PrecisePoint - ENABLE SMOOTH MOUSE
  1244.     AX = 3001h
  1245. Return: AX = status (0000h = disabled, 0001h = enabled)
  1246. Note:    SMD remains disabled if running under Desqview or in graphics mode
  1247. SeeAlso: AX=0001h,AX=0002h,AX=3002h
  1248. --------M-333002-----------------------------
  1249. INT 33 - Smooth Mouse Driver, PrecisePoint - DISABLE SMOOTH MOUSE
  1250.     AX = 3002h
  1251. Return: AX = status (0000h = disabled, 0001h = enabled)
  1252. SeeAlso: AX=0001h,AX=0002h,AX=3000h,AX=3001h
  1253. --------M-333003-----------------------------
  1254. INT 33 - Smooth Mouse Driver, PrecisePoint - GET INFORMATION
  1255.     AX = 3003h
  1256.     BL = data structure selector
  1257.         00h Primary Bitmap (used for 25 line mode) (see #2824)
  1258.         01h Secondary Bitmap (used for 43/50 line modes) (see #2824)
  1259.         02h Sacrifice Character Map (see #2825)
  1260.         03h Program Information (see #2826)
  1261. Return: ES:DX -> selected data structure
  1262. SeeAlso: AX=3000h
  1263.  
  1264. Format of Primary/Secondary Bitmap [SMD_BITMAP_STRUCT]:
  1265. Offset    Size    Description    (Table 2824)
  1266.  00h    BYTE    vertical size of bitmap (00h - 10h)
  1267.  01h    BYTE    horizontal size of bitmap (00h - 10h)
  1268.  02h    BYTE    vertical hotspot position (00h - 10h)
  1269.  03h    BYTE    horizontal hotspot position (00h - 10h)
  1270.  04h 16 WORDs    cursor bitmap data
  1271.  14h 16 WORDs    screen bitmap data
  1272.  
  1273. Format of Sacrifice Character Map [SMD_SMAP_STRUCT]:
  1274. Offset    Size    Description    (Table 2825)
  1275.  00h    BYTE    bytes are character values (00h-FFh) used in place of the
  1276.  01h    BYTE    actual character for the corresponding position on the screen
  1277.  02h    BYTE         +--------------+      occupied by part or all of the mouse
  1278.  03h    BYTE         | 0h | 1h | 2h |      cursor
  1279.  04h    BYTE         |----+----+----|
  1280.  05h    BYTE         | 3h | 4h | 5h |
  1281.  06h    BYTE         |----+----+----|
  1282.  07h    BYTE         | 6h | 7h | 8h |
  1283.  08h    BYTE         +--------------+
  1284.  
  1285. Format of Program Information [SMD_INFO_STRUCT]:
  1286. Offset    Size    Description    (Table 2826)
  1287.  00h    WORD    segment of old interrupt 33h handler
  1288.  02h    WORD    offset of old interrupt 33h handler
  1289.  04h    WORD    PSP of SMD
  1290.  06h    BYTE    ENABLE/DISABLE manual setting status
  1291.  07h    BYTE    ENABLE/DISABLE internal usage status
  1292. --------M-333004-----------------------------
  1293. INT 33 - Smooth Mouse Driver, PrecisePoint - RESERVED FUTURE EXPANSION
  1294.     AX = 3004h
  1295. SeeAlso: AX=3000h
  1296. --------M-333005-----------------------------
  1297. INT 33 - Smooth Mouse Driver, PrecisePoint - RESERVED FUTURE EXPANSION
  1298.     AX = 3005h
  1299. SeeAlso: AX=3000h
  1300. --------M-334F00-----------------------------
  1301. INT 33 - LOGITECH MOUSE v6.10+ - GET ???
  1302.     AX = 4F00h
  1303. Return: AX = 004Fh if supported
  1304.     BX = ???
  1305.     ES:DI -> ???
  1306. SeeAlso: AX=4F01h
  1307. --------M-334F01-----------------------------
  1308. INT 33 - LOGITECH MOUSE v6.10+ - ???
  1309.     AX = 4F01h
  1310.     ES = ???
  1311. Return: AX = 004Fh if supported
  1312.     ES:DI -> ???
  1313. SeeAlso: AX=4F00h
  1314. --------M-336F00-----------------------------
  1315. INT 33 - Hewlett Packard - HP MOUSE DRIVER INSTALLATION CHECK
  1316.     AX = 6F00h
  1317.     BX <> 4850h
  1318. Return: BX = 4850h ('HP') if mouse driver written by Hewlett Packard
  1319. SeeAlso: INT 10/AX=6F00h,INT 14/AX=6F00h,INT 16/AX=6F00h,INT 17/AX=6F00h
  1320. --------M-338800-----------------------------
  1321. INT 33 U - InfoTrack IMOUSE.COM - UNHOOK MOUSE IRQ
  1322.     AX = 8800h
  1323.     BX <> FFFFh
  1324. Note:    the code is written to expect a subfunction number in AL, but only
  1325.       function 00h has been implemented
  1326. SeeAlso: AX=8800h/BX=FFFFh
  1327. --------M-338800BXFFFF-----------------------
  1328. INT 33 U - InfoTrack IMOUSE.COM - GET ACTIVE IRQ
  1329.     AX = 8800h
  1330.     BX = FFFFh
  1331. Return: BL = number of IRQ being used by the mouse
  1332. SeeAlso: AX=8800h
  1333. --------T-33FFE6-----------------------------
  1334. INT 33 - Switch-It v3.23 - GET ??? PROGRAM
  1335.     AX = FFE6h
  1336.     CX = length of buffer
  1337.     ES:DI -> buffer for program name
  1338. Return: ES:DI buffer filled
  1339. Program: Switch-It is a task switcher supporting up to 100 programs
  1340.       simultaneously by Better Software Technology, Inc.
  1341. --------T-33FFE7-----------------------------
  1342. INT 33 - Switch-It v3.23 - GET ???
  1343.     AX = FFE7h
  1344. Return: AX = ???
  1345. --------T-33FFE8-----------------------------
  1346. INT 33 - Switch-It v3.23 - ???
  1347.     AX = FFE8h
  1348.     CX = length of name including terminating NUL
  1349.     DS:SI -> ASCIZ program pathname
  1350. --------T-33FFE9-----------------------------
  1351. INT 33 - Switch-It v3.23 - SET ???
  1352.     AX = FFE9h
  1353.     BX = ???
  1354. --------T-33FFEA-----------------------------
  1355. INT 33 - Switch-It v3.23 - SET ???
  1356.     AX = FFEAh
  1357.     BL = ???
  1358. --------T-33FFEB-----------------------------
  1359. INT 33 - Switch-It v3.23 - SET ??? FLAG
  1360.     AX = FFEBh
  1361. --------T-33FFEC-----------------------------
  1362. INT 33 - Switch-It v3.23 - SET ???
  1363.     AX = FFECh
  1364.     BL = ???
  1365. --------T-33FFED-----------------------------
  1366. INT 33 - Switch-It v3.23 - GET ???
  1367.     AX = FFEDh
  1368. Return: AX = ??? (0001h)
  1369.     BX = ???
  1370. Program: Switch-It is a task switcher supporting up to 100 programs
  1371.       simultaneously by Better Software Technology, Inc.
  1372. --------T-33FFEE-----------------------------
  1373. INT 33 - Switch-It v3.23 - GET ???
  1374.     AX = FFEEh
  1375. Return: AX = ???
  1376. --------T-33FFEF-----------------------------
  1377. INT 33 - Switch-It v3.23 - GET ???
  1378.     AX = FFEFh
  1379. Return: BX:AX -> ???
  1380. --------T-33FFF0-----------------------------
  1381. INT 33 - Switch-It v3.23 - SET ???
  1382.     AX = FFF0h
  1383.     BL = ???
  1384. --------T-33FFF1-----------------------------
  1385. INT 33 - Switch-It v3.23 - GET CONFIGURATION FILE
  1386.     AX = FFF1h
  1387. Return: BX:AX -> ASCIZ pathname of configuration file
  1388. Program: Switch-It is a task switcher supporting up to 100 programs
  1389.       simultaneously by Better Software Technology, Inc.
  1390. --------T-33FFF2-----------------------------
  1391. INT 33 - Switch-It v3.23 - SET ??? FLAG
  1392.     AX = FFF2h
  1393. Return: AL = 01h
  1394. --------T-33FFF3-----------------------------
  1395. INT 33 - Switch-It v3.23 - GET ???
  1396.     AX = FFF3h
  1397. Return: AX = ???
  1398. --------T-33FFF4-----------------------------
  1399. INT 33 - Switch-It v3.23 - SET ???
  1400.     AX = FFF4h
  1401.     BX = ???
  1402.     CX = ???
  1403. --------T-33FFF5-----------------------------
  1404. INT 33 - Switch-It v3.23 - GET ???
  1405.     AX = FFF5h
  1406. Return: AX = ???
  1407. --------T-33FFF6-----------------------------
  1408. INT 33 - Switch-It v3.23 - GET ???
  1409.     AX = FFF6h
  1410. Return: AX = ???
  1411. --------T-33FFF7-----------------------------
  1412. INT 33 - Switch-It v3.23 - GET ???
  1413.     AX = FFF7h
  1414.     BX = index of ???
  1415. Return: AX = ???
  1416. --------T-33FFF8-----------------------------
  1417. INT 33 - Switch-It v3.23 - ???
  1418.     AX = FFF8h
  1419.     BX = ???
  1420.     CX = length of program name, including terminating NUL
  1421.     DS:SI -> ASCIZ program pathname
  1422. Return: ???
  1423. Program: Switch-It is a task switcher supporting up to 100 programs
  1424.       simultaneously by Better Software Technology, Inc.
  1425. --------T-33FFF9-----------------------------
  1426. INT 33 - Switch-It v3.23 - NOP
  1427.     AX = FFF9h
  1428. --------T-33FFFA-----------------------------
  1429. INT 33 - Switch-It v3.23 - SET ???
  1430.     AX = FFFAh
  1431.     BX = index of program
  1432. SeeAlso: AX=FFFBh,AX=FFFCh
  1433. --------T-33FFFB-----------------------------
  1434. INT 33 - Switch-It v3.23 - GET ???
  1435.     AX = FFFBh
  1436.     BX = index of program
  1437. Return: AX = ??? (0000h or 0001h)
  1438. SeeAlso: AX=FFFAh,AX=FFFCh
  1439. --------T-33FFFC-----------------------------
  1440. INT 33 - Switch-It v3.23 - CLEAR ???
  1441.     AX = FFFCh
  1442.     BX = index of program
  1443. SeeAlso: AX=FFFAh,AX=FFFCh
  1444. --------T-33FFFD-----------------------------
  1445. INT 33 - Switch-It v3.23 - GET MEMORY ADDRESSES???
  1446.     AX = FFFDh
  1447. Return: AX = first available segment???
  1448.     BX = paragraph of top of conventional memory
  1449.     DX = PSP segment of SI.EXE
  1450. --------T-33FFFE-----------------------------
  1451. INT 33 - Switch-It v3.23 - INSTALLATION CHECK
  1452.     AX = FFFEh
  1453. Return: BX = ???
  1454.     DX = 5349h ("SI")
  1455. --------T-33FFFF-----------------------------
  1456. INT 33 - Switch-It v3.23 - ???
  1457.     AX = FFFFh
  1458.     BX = ???
  1459. Program: Switch-It is a task switcher supporting up to 100 programs
  1460.       simultaneously by Better Software Technology, Inc.
  1461. --------r-34---------------------------------
  1462. INT 34 - FLOATING POINT EMULATION - OPCODE D8h
  1463. Desc:    this interrupt is used to emulate floating-point instructions with
  1464.       an opcode of D8h
  1465. Note:    the floating-point emulators in Borland and Microsoft languages and
  1466.       Lahey FORTRAN use this interrupt
  1467. SeeAlso: INT 35,INT 3E
  1468. --------r-35---------------------------------
  1469. INT 35 - FLOATING POINT EMULATION - OPCODE D9h
  1470. Desc:    this interrupt is used to emulate floating-point instructions with
  1471.       an opcode of D9h
  1472. Note:    the floating-point emulators in Borland and Microsoft languages and
  1473.       Lahey FORTRAN use this interrupt
  1474. SeeAlso: INT 34,INT 36
  1475. --------r-36---------------------------------
  1476. INT 36 - FLOATING POINT EMULATION - OPCODE DAh
  1477. Desc:    this interrupt is used to emulate floating-point instructions with
  1478.       an opcode of DAh
  1479. Note:    the floating-point emulators in Borland and Microsoft languages and
  1480.       Lahey FORTRAN use this interrupt
  1481. SeeAlso: INT 35,INT 37
  1482. --------r-37---------------------------------
  1483. INT 37 - FLOATING POINT EMULATION - OPCODE DBh
  1484. Desc:    this interrupt is used to emulate floating-point instructions with
  1485.       an opcode of DBh
  1486. Note:    the floating-point emulators in Borland and Microsoft languages and
  1487.       Lahey FORTRAN use this interrupt
  1488. SeeAlso: INT 36,INT 38
  1489. --------r-38---------------------------------
  1490. INT 38 - FLOATING POINT EMULATION - OPCODE DCh
  1491. Desc:    this interrupt is used to emulate floating-point instructions with
  1492.       an opcode of DCh
  1493. Note:    the floating-point emulators in Borland and Microsoft languages and
  1494.       Lahey FORTRAN use this interrupt
  1495. SeeAlso: INT 37,INT 39
  1496. --------O-38---------------------------------
  1497. INT 38 - PC-MOS/386 v3.0 - API
  1498. Note:    this API was been moved to INT D4h sometime between versions 3.0 and
  1499.       5.01; v3.0 supported at least functions 02h,04h,0703h,10h,11h, and
  1500.       12h
  1501. SeeAlso: INT D4/AH=02h,INT D4/AH=04h,INT D4/AH=07h,INT D4/AH=10h,INT D4/AH=11h
  1502. --------r-39---------------------------------
  1503. INT 39 - FLOATING POINT EMULATION - OPCODE DDh
  1504. Desc:    this interrupt is used to emulate floating-point instructions with
  1505.       an opcode of DDh
  1506. Note:    the floating-point emulators in Borland and Microsoft languages and
  1507.       Lahey FORTRAN use this interrupt
  1508. SeeAlso: INT 38,INT 3A
  1509. --------r-3A---------------------------------
  1510. INT 3A - FLOATING POINT EMULATION - OPCODE DEh
  1511. Desc:    this interrupt is used to emulate floating-point instructions with
  1512.       an opcode of DEh
  1513. Note:    the floating-point emulators in Borland and Microsoft languages and
  1514.       Lahey FORTRAN use this interrupt
  1515. SeeAlso: INT 39,INT 3B
  1516. --------r-3B---------------------------------
  1517. INT 3B - FLOATING POINT EMULATION - OPCODE DFh
  1518. Desc:    this interrupt is used to emulate floating-point instructions with
  1519.       an opcode of DFh
  1520. Note:    the floating-point emulators in Borland and Microsoft languages and
  1521.       Lahey FORTRAN use this interrupt
  1522. SeeAlso: INT 3A,INT 3C
  1523. --------r-3C---------------------------------
  1524. INT 3C - FLOATING POINT EMULATION - INSTRUCTIONS WITH SEGMENT OVERRIDE
  1525. Notes:    the floating-point emulators in Borland and Microsoft languages and
  1526.       Lahey FORTRAN use this interrupt
  1527.     the generated code is  CD 3C xy mm ....
  1528.       where xy is a modified ESC instruction and mm is the modR/M byte.
  1529.       The xy byte appears to be encoded as
  1530.         s s 0 1 1 x x x      or    s s 0 0 0 x x x
  1531.       where "ss" specifies the segment override:
  1532.         00 -> DS:
  1533.         01 -> SS:
  1534.         10 -> CS:
  1535.         11 -> ES:
  1536. SeeAlso: INT 3B,INT 3D
  1537. --------r-3D---------------------------------
  1538. INT 3D - FLOATING POINT EMULATION - STANDALONE FWAIT
  1539. Notes:    the floating-point emulators in Borland and Microsoft languages and
  1540.       Lahey FORTRAN use this interrupt
  1541.     this vector is modified but not restored by Direct Access v4.0, and
  1542.       may be left dangling by other programs written with the same version
  1543.       of compiled BASIC
  1544. SeeAlso: INT 3C,INT 3E
  1545. --------r-3E---------------------------------
  1546. INT 3E - FLOATING POINT EMULATION - Borland LANGUAGES "SHORTCUT" CALL
  1547. Notes:    the two bytes following the INT 3E instruction are the subcode
  1548.       (see #2827) and a NOP (90h), except for subcodes DCh and DEh, where
  1549.       the second byte is a register count (01h-08h)
  1550.     this vector is modified but not restored by Direct Access v4.0, and
  1551.       may be left dangling by other programs written with the same version
  1552.       of compiled BASIC
  1553. SeeAlso: INT 3D
  1554.  
  1555. (Table 2827)
  1556. Values for Borland floating-point shortcut subcode:
  1557. Subcode        Function
  1558.  DCh    load 8086 stack with 8087 registers; overwrites the 10*N bytes at the
  1559.       top of the stack prior to the INT 3E with the 8087 register contents
  1560.  DEh    load 8087 registers from top of 8086 stack; ST0 is furthest from top
  1561.       of 8086 stack
  1562.  E0h    round TOS and R1 to single precision, compare, pop twice
  1563.       returns AX=8087 status word, FLAGS=8087 condition bits
  1564.  E2h    round TOS and R1 to double precision, compare, pop twice
  1565.       returns AX=8087 status word, FLAGS=8087 condition bits
  1566.     Note: buggy in TPas5.5, because it sets the 8087 precision control
  1567.       field to the undocumented value 01h; this results in actually
  1568.       rounding to single precision
  1569.  E4h    compare TOS/R1 with two POP's
  1570.       returns FLAGS=8087 condition bits
  1571.  E6h    compare TOS/R1 with POP
  1572.       returns FLAGS=8087 condition bits
  1573.  E8h    FTST (check TOS value)
  1574.       returns FLAGS=8087 condition bits
  1575.  EAh    FXAM (check TOS value)
  1576.       returns AX=8087 status word
  1577.  ECh    sine(ST0)
  1578.  EEh    cosine(ST0)
  1579.  F0h    tangent(ST0)
  1580.  F2h    arctangent(ST0)
  1581.  F4h    ST0 = ln(ST0)
  1582.  F6h    ST0 = log2(ST0)
  1583.  F8h    ST0 = log10(ST0)
  1584.  FAh    ST0 = e**ST0
  1585.  FCh    ST0 = 2**ST0
  1586.  FEh    ST0 = 10**ST0
  1587. --------r-3F---------------------------------
  1588. INT 3F - Overlay manager interrupt (Microsoft LINK.EXE, Borland TLINK VROOMM)
  1589. Notes:    INT 3F is the default, and may be overridden while linking
  1590.     this vector is modified but not restored by Direct Access v4.0, and
  1591.       may be left dangling by other programs written with the same version
  1592.       of compiled BASIC
  1593. SeeAlso: INT FE"OVERLAY"
  1594. --------r-3F---------------------------------
  1595. INT 3F - Microsoft Dynamic Link Library manager
  1596. SeeAlso: INT 21/AH=4Bh
  1597. --------B-40---------------------------------
  1598. INT 40 - DISKETTE - ROM BIOS DISKETTE HANDLER RELOCATED BY HARD DISK BIOS
  1599. SeeAlso: INT 13/AH=00h,INT 13/AH=02h,INT 47"SuperBIOS",INT 63"Adaptec"
  1600. --------h-40---------------------------------
  1601. INT 40 - Z100 - Master 8259 - Parity error or S100 error
  1602. SeeAlso: INT 41"Z100",INT FF"Z100"
  1603. --------O-40---------------------------------
  1604. INT 40 - Acorn BBC Master 512 - "OSFIND" - OPEN FILE
  1605.     AL = operation
  1606.         00h close file
  1607.         40h open file for reading
  1608.         80h open file for writing
  1609.         C0h open file for random access
  1610.     DS:BX -> CR-terminated filename
  1611. Return: AL = file handle (00h if file closed or could not be opened)
  1612. Note:    the Acorn BBC Master 512 is an 80186-based add-on board for the
  1613.       6502-based Master 128 which uses the original CPU as an I/O processor
  1614. SeeAlso: INT 41"Acorn",INT 42"Acorn",INT 43"Acorn",INT 44"Acorn",INT 4C"Acorn"
  1615. --------h-40---------------------------------
  1616. INT 40 - TI Professional PC - IRQ0
  1617. Note:    on the TI Pro, IRQ0 is connected to the same pin on the expansion bus
  1618.       that IBM connects to IRQ2
  1619. SeeAlso: INT 0A"IRQ2",INT 41"TI Professional"
  1620. --------B-41---------------------------------
  1621. INT 41 - SYSTEM DATA - HARD DISK 0 PARAMETER TABLE
  1622. Notes:    the default parameter table array is located at F000h:E401h in 100%
  1623.       compatible BIOSes; the pointer may be overridden by the hard disk
  1624.       controller's BIOS to support drive formats unknown to the ROM BIOS
  1625.     not used by some PS/2 models
  1626.     BIOSes which support four hard drives may store the parameter tables
  1627.       for drives 81h-83h immediately following the parameter table pointed
  1628.       at by INT 41, with a separate copy of the drive 81h table for INT 46.
  1629.       The check for such an arrangement is to test whether INT 46 points
  1630.       somewhere other than exactly 16 bytes past INT 41, and the sixteen
  1631.       bytes starting at offset 10h from INT 41 are identical to the sixteen
  1632.       bytes pointed at by INT 46
  1633. SeeAlso: #2828,INT 13/AH=09h,INT 1E,INT 46"HARD DISK 1",INT 60"Adaptec"
  1634. SeeAlso: INT C0"AMI"
  1635.  
  1636. Format of fixed disk parameters:
  1637. Offset    Size    Description    (Table 2828)
  1638.  00h    WORD    number of cylinders
  1639.  02h    BYTE    number of heads
  1640.  03h    WORD    starting reduced write current cylinder (XT only, 0 for others)
  1641.  05h    WORD    starting write precompensation cylinder number
  1642.  07h    BYTE    maximum ECC burst length (XT only)
  1643.  08h    BYTE    control byte (see #2829,#2830)
  1644.  09h    BYTE    standard timeout (XT only, 0 for others)
  1645.  0Ah    BYTE    formatting timeout (XT and WD1002 only, 0 for others)
  1646.  0Bh    BYTE    timeout for checking drive (XT and WD1002 only, 0 for others)
  1647.  0Ch    WORD    cylinder number of landing zone (AT and later only)
  1648.  0Eh    BYTE    number of sectors per track (AT and later only)
  1649.  0Fh    BYTE    reserved
  1650. SeeAlso: #0198,#0200
  1651.  
  1652. Bitfields for XT fixed disk control byte:
  1653. Bit(s)    Description    (Table 2829)
  1654.  2-0    drive step speed
  1655.     000  3ms
  1656.     100  200ms
  1657.     101  70ms (default)
  1658.     110  3ms
  1659.     111  3ms
  1660.  5-3    unused
  1661.  6    disable ECC retries
  1662.  7    disable access retries
  1663.  
  1664. Bitfields for AT fixed disk control byte:
  1665. Bit(s)    Description    (Table 2830)
  1666.  0    unused
  1667.  1    reserved (0)  (disable IRQ)
  1668.  2    reserved (0)  (no reset)
  1669.  3    set if more than 8 heads
  1670.  4    always 0
  1671.  5    set if manufacturer's defect map on max cylinder+1  (AT and later only)
  1672.  6    disable ECC retries
  1673.  7    disable access retries
  1674. --------h-41---------------------------------
  1675. INT 41 - Z100 - Master 8259 - Processor Swap
  1676. SeeAlso: INT 40"Z100",INT 42"Z100"
  1677. --------h-41---------------------------------
  1678. INT 41 - TI Professional PC - IRQ1
  1679. Note:    on the TI Pro, IRQ1 is connected to the same pin on the expansion bus
  1680.       that IBM connects to IRQ3
  1681. SeeAlso: INT 0B"IRQ3",INT 40"TI Professional",INT 42"TI Professional"
  1682. --------O-41---------------------------------
  1683. INT 41 - Acorn BBC Master 512 - "OSGBPB" - MULTI-BYTE GET/PUT
  1684.     AL = function
  1685.         01h put bytes sequentially
  1686.         02h put bytes, ignoring sequential pointer
  1687.         03h get bytes sequentially
  1688.         04h get bytes, ignoring sequential pointer
  1689.         05h get media title and boot option
  1690.         06h get current device and directory
  1691.         07h get current library and device
  1692.         08h search directory
  1693.     DS:BX -> control block (see #2831)
  1694. Return: CF clear if successful
  1695.     CF set on error
  1696.     AL = 00h if operation attempted
  1697.     AL unchanged if unsupported function
  1698. SeeAlso: INT 40"Acorn",INT 42"Acorn",INT 43"Acorn"
  1699.  
  1700. Format of BBC Master control block:
  1701. Offset    Size    Description    (Table 2831)
  1702.  00h    BYTE    file handle
  1703.  01h    DWORD    pointer to data in either I/O processor or Tube processor
  1704.  05h    DWORD    number of bytes to be transferred
  1705.  09h    DWORD    transfer address
  1706. --------G-410000-----------------------------
  1707. INT 41 CPU - MS Windows debugging kernel - OUTPUT CHARACTER FOR USER
  1708.     AX = 0000h
  1709.     DS:DX -> character
  1710. Note:    the kernel calls this function when it wants the user program to
  1711.       output a character
  1712. SeeAlso: AX=0001h
  1713. --------G-410001-----------------------------
  1714. INT 41 CPU - MS Windows debugging kernel - INPUT CHARACTER
  1715.     AX = 0001h
  1716. Return: AL = character
  1717. Note:    the kernel calls this function when it needs to input a character
  1718. SeeAlso: AX=0000h
  1719. --------G-41000D-----------------------------
  1720. INT 41 CPU - MS Windows debugging kernel - TASK GOING OUT
  1721.     AX = 000Dh
  1722. SeeAlso: AX=000Eh
  1723. --------G-41000E-----------------------------
  1724. INT 41 CPU - MS Windows debugging kernel - TASK COMING IN
  1725.     AX = 000Eh
  1726. SeeAlso: AX=000Dh
  1727. --------G-410012-----------------------------
  1728. INT 41 CPU - MS Windows debugging kernel - "OutputDebugString"
  1729.     AX = 0012h
  1730.     DS:SI -> string (Windows 3.0)
  1731.     ES:SI -> string (Windows 3.1)
  1732. Return: nothing???
  1733. Note:    this function is called by the kernel when it wants to output a
  1734.       string through the debugger
  1735. SeeAlso: AX=0050h,INT 68/AH=47h
  1736. --------G-41004F-----------------------------
  1737. INT 41 CPU - MS Windows debugging kernel - DEBUGGER INSTALLATION CHECK
  1738.     AX = 004Fh
  1739. Return: AX = F386h if debugger is present
  1740. SeeAlso: INT 68/AX=4400h
  1741. --------G-410050-----------------------------
  1742. INT 41 P - MS Windows debugging kernel - "DefineDebugSegment"
  1743.     AX = 0050h
  1744.     BX = segment number in executable (0-based)
  1745.     CX = selector
  1746.     DX = instance handle
  1747.     SI = segment flags (0=code, 1=data)
  1748.     ES:DI -> module name of owner
  1749. Return: ???
  1750. SeeAlso: AX=0012h,AX=004Fh
  1751. --------G-410051-----------------------------
  1752. INT 41 CPU - MS Windows debugging kernel - MOVE SEGMENT
  1753.     AX = 0051h
  1754.     ???
  1755. Return: ???
  1756. SeeAlso: AX=0050h,AX=0052h
  1757. --------G-410052-----------------------------
  1758. INT 41 CPU - MS Windows debugging kernel - FREE SEGMENT
  1759.     AX = 0052h
  1760.     BX = freed selector
  1761. SeeAlso: AX=0050h,AX=0051h,AX=005Ch
  1762. --------G-410059-----------------------------
  1763. INT 41 CPU - MS Windows debugging kernel - LOAD TASK
  1764.     AX = 0059h
  1765.     ???:BX = CS:IP of new task's starting point
  1766. --------G-41005C-----------------------------
  1767. INT 41 CPU - MS Windows debugging kernel - FREE INITIAL SEGMENT
  1768.     AX = 005Ch
  1769.     BX = freed selector
  1770. Note:    called only when KERNEL starts, once for CS and once for the DS alias
  1771.       to CS
  1772. SeeAlso: AX=0052h
  1773. --------G-410060-----------------------------
  1774. INT 41 CPU - MS Windows debugging kernel -  END OF SEGMENT LOAD
  1775.     AX = 0060h
  1776.     ???
  1777. Return: ???
  1778. SeeAlso: AX=0061h
  1779. --------G-410061-----------------------------
  1780. INT 41 CPU - MS Windows debugging kernel - END OF SEGMENT DISCARD
  1781.     AX = 0061h
  1782.     ???
  1783. Return: ???
  1784. SeeAlso: AX=0060h
  1785. --------G-410062-----------------------------
  1786. INT 41 CPU - MS Windows debugging kernel - APPLICATION TERMINATING
  1787.     AX = 0062h
  1788. STACK:    BYTE    exit code
  1789. Return: ???
  1790.     STACK unchanged???
  1791. SeeAlso: AX=0064h
  1792. --------G-410063-----------------------------
  1793. INT 41 CPU - MS Windows debugging kernel - ASYNCHRONOUS STOP (Ctrl-Alt-SysReq)
  1794.     AX = 0063h
  1795. --------G-410064-----------------------------
  1796. INT 41 CPU - MS Windows debugging kernel - DLL LOADED
  1797.     AX = 0064h
  1798.     CX:BX = DLL entry point CS:IP
  1799.     SI = module handle
  1800. SeeAlso: AX=0062h,AX=0065h
  1801. --------G-410065-----------------------------
  1802. INT 41 CPU - MS Windows debugging kernel - MODULE REMOVED
  1803.     AX = 0065h
  1804.     ES = module handle
  1805. SeeAlso: AX=0064h
  1806. --------V-42---------------------------------
  1807. INT 42 - VIDEO - RELOCATED DEFAULT INT 10 VIDEO SERVICES (EGA,VGA)
  1808. Desc:    contains the address of the original INT 10 handler which an EGA+
  1809.       video adapter replaces with its own on-board BIOS code
  1810. SeeAlso: INT 10/AH=00h,INT 10/AH=0Eh,INT 6D"VGA"
  1811. Note:    not used by PS/2 built-in VGA or XGA
  1812. --------h-42---------------------------------
  1813. INT 42 - Z100 - Master 8259 - Timer
  1814. SeeAlso: INT 41"Z100",INT 43"Z100"
  1815. --------h-42---------------------------------
  1816. INT 42 - TI Professional PC - IRQ2
  1817. Note:    on the TI Pro, IRQ0 is connected to the same pin on the expansion bus
  1818.       that IBM connects to IRQ4
  1819. SeeAlso: INT 0C"IRQ4",INT 41"TI Professional",INT 43"TI Professional"
  1820. --------b-42---------------------------------
  1821. INT 42 - Western Digital WD1002 SuperBIOS - INT 40 CASCADE
  1822. Note:    if the second WD1002 controller in the system finds INT 40 already in
  1823.       use, it uses this vector to cascade to the first controller's BIOS
  1824. SeeAlso: INT 40"DISKETTE",INT 47"SuperBIOS"
  1825. --------O-42---------------------------------
  1826. INT 42 - Acorn BBC Master 512 - "OSBPUT" - WRITE SINGLE BYTE TO FILE
  1827.     AL = byte to be written
  1828.     BH = file handle
  1829. Return: flags destroyed
  1830. SeeAlso: INT 40"Acorn",INT 41"Acorn",INT 43"Acorn",INT 47"Acorn",INT 49"Acorn"
  1831. --------V-427500-----------------------------
  1832. INT 42 U - Toshiba laptops - ???
  1833.     AX = 7500h
  1834.     BL = ??? (00h or 01h)
  1835. Return: ???
  1836. Note:    used by Toshiba utility VCHAD.EXE
  1837. SeeAlso: AX=7501h,AX=7503h
  1838. --------V-427501-----------------------------
  1839. INT 42 U - Toshiba laptop - GET ??? DATA
  1840.     AX = 7501h
  1841.     DS:DI -> data area to be filled ???
  1842. Return: area filled with data ???
  1843. Note:    used by Toshiba utility VCHAD.EXE
  1844. SeeAlso: AX=7500h,AX=7502h,AX=7503h
  1845. --------V-427502-----------------------------
  1846. INT 42 U - Toshiba laptops - SET ??? DATA
  1847.     AX = 7502h
  1848.     DS:DI -> data area ???
  1849. Return: ???
  1850. Note:    used by Toshiba utility VCHAD.EXE
  1851. SeeAlso: AX=7501h,AX=7503h
  1852. --------V-427503-----------------------------
  1853. INT 42 - Toshiba laptops - GET DISPLAY STATUS
  1854.     AX = 7503h
  1855. Return: AX = 7575h if supported
  1856.     CX = 0001h if supported
  1857.     BH = display type (00h color, 03h monochrome)
  1858.     BL = display state
  1859.         01h internal LCD display is active
  1860.         02h external VGA display is active
  1861.         03h both displays active / DeskStation display mode enabled
  1862.         (not possible on all machines)
  1863. Note:    used by VCHAD.EXE and supported by all Toshiba VGA laptops until about
  1864.       1994 (string "TOSHIBA " at F000:E010h should be checked before call)
  1865.     no longer supported by T21xx series, use INT 10/AX=5F50h instead
  1866.     INT 42 normally points to F000:F065h but may be redirected by QEMM386
  1867. SeeAlso: AX=7500h,AX=7504h,INT 10/AX=5F50h,INT 15/AH=C0h
  1868. --------V-427504-----------------------------
  1869. INT 42 U - Toshiba laptops - ???
  1870.     AX = 7504h
  1871.     BL = ???
  1872. Return: BH = ???
  1873. Note:    used by Toshiba utility VCHAD.EXE
  1874. SeeAlso: AX=7500h,AX=7503h
  1875. --------V-43---------------------------------
  1876. INT 43 - VIDEO DATA - CHARACTER TABLE (EGA,MCGA,VGA)
  1877. Desc:    points at graphics data for characters 00h-7Fh of the current font
  1878.       in 8x8 dot modes, graphics data for all characters in 8x14 and 8x16
  1879.       modes
  1880. Note:    this is not a callable vector!
  1881. SeeAlso: INT 06"no-name",INT 1F"SYSTEM DATA",INT 44"VIDEO"
  1882. --------h-43---------------------------------
  1883. INT 43 - Z100 - Master 8259 - Slave 8259 input
  1884. Note:    slave runs in special fully nested mode
  1885. SeeAlso: INT 42"Z100",INT 44"Z100"
  1886. --------h-43---------------------------------
  1887. INT 43 - TI Professional PC - IRQ3 - TIMER1 25ms INTERVAL INTERRUPT
  1888. SeeAlso: INT 0B"IRQ3",INT 42"TI Professional",INT 44"TI Professional"
  1889. SeeAlso: INT 58"TI Professional"
  1890. --------O-43---------------------------------
  1891. INT 43 - Acorn BBC Master 512 - "OSBGET" - READ SINGLE BYTE FROM FILE
  1892.     BH = file handle
  1893. Return: CF clear if successful
  1894.         AL = byte read from file
  1895.     CF set on error
  1896. SeeAlso: INT 40"Acorn",INT 41"Acorn",INT 42"Acorn",INT 46"Acorn"
  1897. --------V-44---------------------------------
  1898. INT 44 - VIDEO DATA - ROM BIOS CHARACTER FONT, CHARACTERS 00h-7Fh (PCjr)
  1899. Desc:    this vector points at graphics data for current character font
  1900. SeeAlso: INT 1F"SYSTEM DATA",INT 43"VIDEO"
  1901. --------N-44---------------------------------
  1902. INT 44 - Novell NetWare - HIGH-LEVEL LANGUAGE API
  1903. --------I-44---------------------------------
  1904. INT 44 - IBM 3270-PC High Level Language API
  1905.     DS:SI -> parameter control block
  1906. --------h-44---------------------------------
  1907. INT 44 - Z100 - Master 8259 - Serial A
  1908. SeeAlso: INT 43"Z100",INT 45"Z100"
  1909. --------h-44---------------------------------
  1910. INT 44 - TI Professional PC - IRQ4
  1911. Note:    on the TI Pro, IRQ4 is connected to the same pin on the expansion bus
  1912.       that IBM connects to IRQ5
  1913. SeeAlso: INT 0D"IRQ5",INT 43"TI Professional",INT 45"TI Professional"
  1914. --------v-44---------------------------------
  1915. INT 44 - VIRUS - "Lehigh" - ORIGINAL INT 21h VECTOR
  1916. SeeAlso: INT 32"VIRUS",INT 60"VIRUS",INT 70"VIRUS",INT 9E"VIRUS"
  1917. --------O-4400-------------------------------
  1918. INT 44 - Acorn BBC Master 512 - "OSARGS" - GET/SET FILE PARAMS FOR OPEN FILE
  1919.     AH = 00h
  1920.     AL = function
  1921.         00h get current filing system
  1922.         Return: AL = filing system (see #2832)
  1923.         01h get address of commandline tail
  1924.         Return: BX buffer filled with address of command tail in I/O
  1925.                   processor address space (use INT 4A/AL=05h to
  1926.                   retrieve)
  1927.         FFh flush all files onto secondary storage
  1928.     BX -> 4-byte data buffer
  1929. Note:    the commandline tail is terminated with a carriage return (0Dh)
  1930. SeeAlso: INT 40"Acorn",INT 45"Acorn"
  1931.  
  1932. (Table 2832)
  1933. Values for BBC Master filing system:
  1934.  00h    none
  1935.  01h    1200 bps cassette
  1936.  02h    300 bps cassette
  1937.  03h    ROM FS
  1938.  04h    DFS
  1939.  05h    ANFS/NFS
  1940.  06h    TFS
  1941.  08h    ADFS
  1942. --------O-44---------------------------------
  1943. INT 44 - Acorn BBC Master 512 - "OSARGS" - GET/SET FILE PARAMS FOR OPEN FILE
  1944.     AH = nonzero file handle
  1945.     AL = function
  1946.         00h get sequential pointer for file
  1947.         01h set sequential pointer for file
  1948.         02h get length of file
  1949.     BX -> 4-byte data buffer
  1950. Return: BX buffer updated if appropriate
  1951. SeeAlso: INT 40"Acorn",INT 41"Acorn",INT 44/AH=00h,INT 45"Acorn",INT 4A"Acorn"
  1952. --------h-45---------------------------------
  1953. INT 45 - Z100 - Master 8259 - Serial B
  1954. SeeAlso: INT 44"Z100",INT 46"Z100"
  1955. --------h-45---------------------------------
  1956. INT 45 - TI Professional PC - IRQ5
  1957. Note:    on the TI Pro, IRQ5 is connected to the same pin on the expansion bus
  1958.       that IBM connects to IRQ6
  1959. SeeAlso: INT 0E"IRQ6",INT 44"TI Professional",INT 46"TI Professional"
  1960. --------O-45---------------------------------
  1961. INT 45 - Acorn BBC Master 512 - "OSFILE" - READ/WRITE FILE OR DIRECTORY INFO
  1962.     AL = function
  1963.         00h save block of memory as file
  1964.         01h update directory entry for existing file
  1965.         02h set load address for existing file
  1966.         03h set execution address for existing file
  1967.         04h set attributes for existing file
  1968.         05h read directory
  1969.         06h delete file
  1970.         FFh load file
  1971.     DS:BX -> control block (see #2833)
  1972. Return: FLAGS destroyed
  1973.     AL = file type
  1974.         00h not found
  1975.         01h file found
  1976.         02h directory found
  1977.         FFh protected file
  1978. SeeAlso: INT 40"Acorn",INT 41"Acorn",INT 44"Acorn",INT 46"Acorn"
  1979.  
  1980. Format of BBC Master control block:
  1981. Offset    Size    Description    (Table 2833)
  1982.  00h    WORD    address of CR-terminated filename
  1983.  02h    DWORD    load address of file
  1984.  06h    DWORD    execution address of file
  1985.  0Ah    DWORD    start address of data to save
  1986.  0Eh    DWORD    end address of data to save, or file attributes
  1987.         file attributes in low byte (see #2834)
  1988.         other three bytes are filing-system specific file attributes
  1989.  
  1990. Bitfields for BBC Master file attributes:
  1991. Bit(s)    Description    (Table 2834)
  1992.  0    no owner read access
  1993.  1    no owner write access
  1994.  2    not executable by owner
  1995.  3    not deletable by owner
  1996.  4    no public read access
  1997.  5    no public write access
  1998.  6    not executable with public access
  1999.  7    not deletable with public access
  2000. --------B-46---------------------------------
  2001. INT 46 - SYSTEM DATA - HARD DISK 1 DRIVE PARAMETER TABLE
  2002. Note:    not used by some PS/2 models
  2003. SeeAlso: INT 13/AH=09h,INT 41"HARD DISK 0",INT 60"Adaptec",INT C0"AMI"
  2004. --------h-46---------------------------------
  2005. INT 46 - Z100 - Master 8259 - Keyboard, Retrace, and Light Pen
  2006. SeeAlso: INT 45"Z100",INT 47"Z100"
  2007. --------h-46---------------------------------
  2008. INT 46 - TI Professional PC - IRQ6 - FLOPPY DISK CONTROLLER
  2009. Note:    on the TI Pro, IRQ6 is connected to the same pin on the expansion bus
  2010.       that IBM connects to IRQ7
  2011. SeeAlso: INT 0F"IRQ7",INT 45"TI Professional",INT 47"TI Professional"
  2012. --------O-46---------------------------------
  2013. INT 46 - Acorn BBC Master 512 - "OSRDCH" - GET CHARACTER FROM CUR INPUT STREAM
  2014. Return: CF clear if successful
  2015.         AL = character read
  2016.     CF set on error
  2017.         AL = error code
  2018. SeeAlso: INT 40"Acorn",INT 43"Acorn",INT 47"Acorn",INT 49"Acorn"
  2019. --------h-47---------------------------------
  2020. INT 47 - Z100 - Master 8259 - Printer
  2021. SeeAlso: INT 46"Z100",INT 48"Z100"
  2022. --------h-47---------------------------------
  2023. INT 47 - TI Professional PC - IRQ7 - KEYBOARD USART
  2024. SeeAlso: INT 09"IRQ1",INT 46"TI Professional"
  2025. --------O-47---------------------------------
  2026. INT 47 - Acorn BBC Master 512 - "OSWRCH" - WRITE CHARACTER TO CUR OUTPUT STREAM
  2027.     AL = character to be written
  2028. Return: FLAGS destroyed
  2029. SeeAlso: INT 40"Acorn",INT 46"Acorn",INT 49"Acorn"
  2030. --------b-47---------------------------------
  2031. INT 47 - Western Digital WD1002-27X SuperBIOS - INT 40 CASCADE
  2032. Desc:    used by the second WD1002-27X controller to cascade to the first
  2033.       controller's INT 40
  2034. SeeAlso: INT 40"DISKETTE",INT 42"SuperBIOS",INT 48"SuperBIOS"
  2035. ----------478000-----------------------------
  2036. INT 47 - SQL Base - DATABASE ENGINE API
  2037.     AX = 8000h
  2038.     DS:BX -> parameter block, first word is function number (see #2835)
  2039. Program: SQL Base is a network-oriented database engine by Gupta Technologies
  2040. SeeAlso: AX=8001h
  2041.  
  2042. (Table 2835)
  2043. Values for SQL Base function number:
  2044.  01h    "SQLFINI" initalialize application's use of the database
  2045.  02h    "SQLFDON" application is done using the database
  2046.  03h    "SQLFCON" connect to a cursor/database
  2047.  04h    "SQLFDIS" disconnect from a cursor/database
  2048.  05h    "SQLFCOM" compile a SQL command
  2049.  06h    "SQLFEXE" execute a SQL command
  2050.  07h    "SQLFCEX" compile and execute a SQL command
  2051.  08h    "SQLFCMT" commit a transaction to the database
  2052.  09h    "SQLFDES" describe the items of a SELECT statement
  2053.  0Ah    "SQLFGFI" get fetch information
  2054.  0Bh    "SQLFFBK" fetch previous result row from SELECT statement
  2055.  0Ch    "SQLFFET" fetch next result row from SELECT statement
  2056.  0Dh    "SQLFEFB" enable fetch backwards
  2057.  0Eh    "SQLFPRS" position in result set
  2058.  0Fh    "SQLFURS" undo result set
  2059.  10h    "SQLFNBV" get number of bind variables
  2060.  11h    "SQLFBND" bind data variables
  2061.  12h    "SQLFBNN" bind numerics
  2062.  13h    "SQLFBLN" bind long number
  2063.  14h    "SQLFBLD" bind long data variables
  2064.  15h    "SQLFSRS" start restriction set processing
  2065.  16h    "SQLFRRS" restart restriction set processing
  2066.  17h    "SQLFCRS" close restriction set
  2067.  18h    "SQLFDRS" drop restriction set
  2068.  19h    "SQLFARF" apply Roll Forward journal
  2069.  1Ah    "SQLFERF" end Roll Forward journal
  2070.  1Bh    "SQLFSRF" start Roll Forward journal
  2071.  1Ch    "SQLFSTO" store a compiled SQL command
  2072.  1Dh    "SQLFRET" retrieve a compiled SQL command
  2073.  1Eh    "SQLFDST" drop a stored command
  2074.  1Fh    "SQLFCTY" get command type
  2075.  20h    "SQLFEPO" get error position
  2076.  21h    "SQLFGNR" get number of rows
  2077.  22h    "SQLFNSI" get number of select items
  2078.  23h    "SQLFRBF" get Roll Back flag
  2079.  24h    "SQLFRCD" get return code
  2080.  25h    "SQLFROW" get number of ROWs
  2081.  26h    "SQLFSCN" set cursor name
  2082.  27h    "SQLFSIL" set isolation level
  2083.  28h    "SQLFSLP" set log parameters
  2084.  29h    "SQLFSSB" set select buffer
  2085.  2Ah    "SQLFSSS" set sort space
  2086.  2Bh    "SQLFRLO" read long
  2087.  2Ch    "SQLFWLO" write long
  2088.  2Dh    "SQLFLSK" long seek
  2089.  2Eh    "SQLFGLS" get long size
  2090.  2Fh    "SQLFELO" end long operation
  2091.  30h    "SQLFRBK" roll back a transaction from the database
  2092.  31h    "SQLFERR" error message
  2093.  32h    "SQLFCPY" copy
  2094.  33h    "SQLFR01" reserved
  2095.  34h    "SQLFSYS" system
  2096.  35h    "SQLFSTA" statistics
  2097.  36h    "SQLFR02" reserved
  2098.  37h    "SQLFXAD" extra add
  2099.  38h    "SQLFXCN" extra character to number
  2100.  39h    "SQLFXDA" extra date add
  2101.  3Ah    "SQLFXDP" extra date picture
  2102.  3Bh    "SQLFXDV" extra divide
  2103.  3Ch    "SQLFXML" extra multiply
  2104.  3Dh    "SQLFXNP" extra number picture
  2105.  3Eh    "SQLFXPD" extra picture date
  2106.  3Fh    "SQLFXSB" extra subtract
  2107.  40h    "SQLFINS" install database
  2108.  41h    "SQLFDIN" deinstall database
  2109.  42h    "SQLFDIR" directory of databases
  2110.  43h    "SQLFTIO" timeout
  2111.  44h    "SQLFFQN" get fully qualified column name
  2112.  45h    "SQLFEXP" explain execution plan
  2113.  46h    "SQLFFER" get full error
  2114.  47h    "SQLFBKP" begin online backup
  2115.  48h    "SQLFRDC" read backup data chunk
  2116.  49h    "SQLFEBK" end backup
  2117.  4Ah    "SQLFRES" begin restore from backup
  2118.  4Bh    "SQLFWDC" write backup data chunk for restore
  2119.  4Ch    "SQLFRRD" recover restored database to consistent state
  2120.  4Dh    "SQLFERS" end restore
  2121.  4Eh    "SQLFNRR" return number of result set rows
  2122.  4Fh    "SQLFSTR" start restriction mode
  2123.  50h    "SQLFSPR" stop restriction mode
  2124.  51h    "SQLFCNC" connect 2
  2125.  52h    "SQLFCNR" connect with no recovery
  2126.  53h    "SQLFOMS" set output message size
  2127.  54h    "SQLFIMS" set input message size
  2128.  55h    "SQLFSCP" set cache pages
  2129.  56h    "SQLFDSC" describe items of a SELECT statement (external)
  2130.  57h    "SQLFLAB" get label info for items in SELECT statement
  2131.  58h    "SQLFCBV" clear bind variables
  2132.  59h    "SQLFGET" get database information
  2133.  5Ah    "SQLFSET" set database information
  2134.  5Bh    "SQLFTEC" translate error code
  2135. ----------478001-----------------------------
  2136. INT 47 - SQL Base - GET VERSION NUMBER
  2137.     AX = 8001h
  2138. Return: ???
  2139. Program: SQL Base is a network-oriented database engine by Gupta Technologies
  2140. SeeAlso: AX=8000h
  2141. --------B-48---------------------------------
  2142. INT 48 - KEYBOARD - CORDLESS KEYBOARD TRANSLATION (PCjr)
  2143. SeeAlso: INT 49"PCjr"
  2144. --------h-48---------------------------------
  2145. INT 48 - Z100 - Slave 8259 - S100 vectored line 0
  2146. SeeAlso: INT 47"Z100",INT 49"Z100"
  2147. --------N-48---------------------------------
  2148. INT 48 - Watstar PC Network data pointer 1
  2149. SeeAlso: INT 49"Watstar"
  2150. --------O-48---------------------------------
  2151. INT 48 - Acorn BBC Master 512 - "OSNEWL" - SEND NEWLINE TO OUTPUT STREAM
  2152. Return: FLAGS destroyed
  2153. Note:    writes a carriage return (0Dh) followed by a linefeed (0Ah)
  2154. SeeAlso: INT 40"Acorn",INT 47"Acorn",INT 49"Acorn"
  2155. --------b-48---------------------------------
  2156. INT 48 - Western Digital WD1002-27X SuperBIOS - DRIVE DATA (NOT A VECTOR!)
  2157. Note:    the second WD1002-27X controller in a system uses the low byte to
  2158.       store the number of drives controlled by the second controller,
  2159.       and the high word for temporary storage during track recalculation;
  2160.       the first controller uses offsets 74h-77h in the BIOS data area
  2161.       (refer to MEMORY.LST) to store data
  2162. SeeAlso: INT 47"SuperBIOS"
  2163. --------V-48---------------------------------
  2164. INT 48 U - Compaq UILIB.EXE - API
  2165.     AX = function (see #2836)
  2166.     BX = call type (0002h) (see #2839)
  2167.     ???
  2168. Return: ???
  2169. Note:    returns AX=FFFFh if 1000h<=AX<=2000h and AX is not one of the functions
  2170.       listed below
  2171. SeeAlso: AX=1A70h
  2172.  
  2173. (Table 2836)
  2174. Values for valid UILIB function number:
  2175.  1000h    1160h    12D0h    1430h    1570h    1680h    17F0h    1920h    1A90h
  2176.  1010h    1170h    12E0h    1440h    1578h    1690h    1800h    1930h    1AA0h
  2177.  1020h    1180h    12F0h    1450h    1580h    16A0h    1810h    1940h
  2178.  1030h    1190h    1300h    1460h    1590h    16B0h    1820h    1950h
  2179.  1040h    11A0h    1310h    1470h    1594h    16C0h    1830h    1960h
  2180.  1050h    11B0h    1320h    1480h    1598h    16D0h    1840h    1970h
  2181.  1060h    11C0h    1330h    1490h    15A0h    16E0h    1848h    1980h
  2182.  1070h    11D0h    1340h    14A0h    15B0h    16F0h    1850h    1990h
  2183.  1080h    11E0h    1350h    14B0h    15C0h    1700h    1860h    19A0h
  2184.  1090h    11F0h    1360h    14B8h    15D0h    1710h    1870h    19B0h
  2185.  1095h    1200h    1370h    14BBh    15D4h    1720h    1878h    19C0h
  2186.  1098h    1210h    1380h    14C0h    15D8h    1730h    1880h    19D0h
  2187.  10A0h    1220h    1390h    14D0h    15E0h    1735h    1890h    19E0h
  2188.  10C0h    1230h    13A0h    14E0h    15F0h    1740h    1898h    19F0h
  2189.  10D0h    1240h    13B0h    14F0h    1600h    1750h    18A0h    1A00h
  2190.  10E0h    1250h    13B8h    1500h    1610h    1770h    18B0h    1A10h
  2191.  10F0h    1260h    13C0h    1508h    1620h    1780h    18C0h    1A20h
  2192.  1100h    1270h    13D0h    1510h    1630h    1790h    18D0h    1A30h
  2193.  1110h    1280h    13E0h    1520h    1640h    17A0h    18E0h    1A40h
  2194.  1120h    1290h    13F0h    1530h    1650h    17B0h    18F0h    1A50h
  2195.  1130h    12A0h    1400h    1540h    1660h    17C0h    1900h    1A60h
  2196.  1140h    12B0h    1410h    1550h    1664h    17D0h    1909h    1A70h
  2197.  1150h    12C0h    1420h    1560h    1670h    17E0h    1910h    1A80h
  2198. --------b-4800-------------------------------
  2199. INT 48 - TI Professional PC - SPEAKER DEVICE - SOUND SPEAKER
  2200.     AH = 00h
  2201.     AL = number of 25ms ticks sound should last
  2202. Return: nothing
  2203. Desc:    sound the speaker at the current frequency setting (see AH=02h) for
  2204.       the indicated duration
  2205. Notes:    this function returns immediately; the sound is terminated by the
  2206.       timer interrupt handler
  2207.     if a new sound is requested while one is already in progress, the
  2208.       previous sound is terminated immediately and the new sound takes
  2209.       its place
  2210. SeeAlso: AH=01h,AH=02h,AH=03h,AH=04h,AH=06h,AH=08h,AH=0Ah,AH=0Bh
  2211. SeeAlso: INT 40"TI Professional",INT 49/AH=01h"TI"
  2212. SeeAlso: INT 4A/AH=00h"TI",INT 4C"TI Professional",INT 4D/AH=00h
  2213. --------b-4801-------------------------------
  2214. INT 48 - TI Professional PC - SPEAKER DEVICE - CHECK SPEAKER STATUS
  2215.     AH = 01h
  2216. Return: ZF clear if speaker is currently on
  2217.     ZF set if speaker is currently off
  2218. SeeAlso: AH=00h,AH=02h,AH=03h,AH=04h,AH=06h,AH=08h,AH=0Ah,AH=0Bh
  2219. --------b-4802-------------------------------
  2220. INT 48 - TI Professional PC - SPEAKER DEVICE - SET SPEAKER FREQUENCY
  2221.     AH = 02h
  2222.     CX = frequency divisor (freq = 1250000 / CX)
  2223. Return: nothing
  2224. SeeAlso: AH=00h,AH=01h,AH=03h,AH=04h,AH=06h,AH=08h,AH=0Ah,AH=0Bh
  2225. --------b-4803-------------------------------
  2226. INT 48 - TI Professional PC - SPEAKER DEVICE - TURN ON SPEAKER
  2227.     AH = 03h
  2228. Return: nothing
  2229. Desc:    turn on the speaker at the current frequency, leaving it on until
  2230.       explicitly turned off with AH=04h or the end of a subsequent
  2231.       AH=00h
  2232. SeeAlso: AH=00h,AH=01h,AH=02h,AH=04h,AH=06h,AH=08h,AH=0Ah,AH=0Bh
  2233. --------b-4804-------------------------------
  2234. INT 48 - TI Professional PC - SPEAKER DEVICE - TURN OFF SPEAKER
  2235.     AH = 04h
  2236. Return: nothing
  2237. SeeAlso: AH=00h,AH=01h,AH=02h,AH=03h,AH=04h,AH=06h,AH=08h,AH=0Ah,AH=0Bh
  2238. --------b-4805-------------------------------
  2239. INT 48 - TI Professional PC - SPEAKER DEVICE - DELAY
  2240.     AH = 05h
  2241.     CX = desired delay in milliseconds
  2242. Return: after delay expires
  2243. Note:    the delay is only approximate, and may be longer than requested
  2244. SeeAlso: AH=00h,AH=01h,AH=02h,AH=03h,AH=04h,AH=06h,AH=08h,AH=0Ah,AH=0Bh
  2245. --------b-4806-------------------------------
  2246. INT 48 - TI Professional PC - CALCULATE CRC
  2247.     AH = 06h
  2248.     ES:BX -> memory block for which to calculate CRC
  2249.     BP = size of block in bytes
  2250. Return: DX = CRC for block
  2251.     ZF set if DX = 0000h
  2252. Note:    if the CRC of a memory block is appended to the block, then the CRC
  2253.       of the block plus CRC should equal 0000h
  2254. SeeAlso: AH=00h,AH=01h,AH=02h,AH=03h,AH=04h,AH=06h,AH=08h,AH=0Ah,AH=0Bh
  2255. --------b-4807-------------------------------
  2256. INT 48 - TI Professional PC - PRINT ROM MESSAGE
  2257.     AH = 07h
  2258.     SI = offset of ASCIZ message string within segment F400h
  2259. Return: nothing
  2260. SeeAlso: AH=00h,AH=01h,AH=02h,AH=03h,AH=04h,AH=06h,AH=08h,AH=0Ah,AH=0Bh
  2261. --------b-4808-------------------------------
  2262. INT 48 - TI Professional PC - DISPLAY SYSTEM ERROR MESSAGE
  2263.     AH = 08h
  2264.     BX = error number
  2265. Return: nothing
  2266. Desc:    displays the error message " ** System Error ** - xxxx" where xxxx is
  2267.       the hexadecimal value in BX
  2268. SeeAlso: AH=00h,AH=01h,AH=02h,AH=03h,AH=04h,AH=06h,AH=08h,AH=0Ah,AH=0Bh
  2269. --------b-4809-------------------------------
  2270. INT 48 - TI Professional PC - GET SYSTEM CONFIGURATION DATA
  2271.     AH = 09h
  2272. Return: ES:BX -> system configuration word (see #2859)
  2273. SeeAlso: AH=00h,AH=01h,AH=02h,AH=03h,AH=04h,AH=06h,AH=08h,AH=0Ah,AH=0Bh
  2274. --------b-480A-------------------------------
  2275. INT 48 - TI Professional PC - GET EXTRA SYSTEM CONFIGURATION INFO ADDRESS
  2276.     AH = 0Ah
  2277. Return: ES:BX -> configuration information (see #2837)
  2278. SeeAlso: AH=00h,AH=01h,AH=02h,AH=03h,AH=04h,AH=06h,AH=08h,AH=0Bh
  2279.  
  2280. Format of TI Professional PC extra system configuration information:
  2281. Offset    Size    Description    (Table 2837)
  2282.  -3    WORD    memory size in paragraphs
  2283.  00h    BYTE    drive type byte (see #2838)
  2284.  01h    WORD    extra system configuration word 1
  2285.         bit 0: 8087 is present
  2286.         bits 15-1: reserved (0)
  2287.  03h    WORD    extra system configuration word 2
  2288.         bits 15-0: reserved (0)
  2289.  
  2290. Bitfields for TI Professional PC drive type byte:
  2291. Bit(s)    Description    (Table 2838)
  2292.  0    drive A is double-sided
  2293.  1    drive A has 80 tracks instead of 40
  2294.  2    drive B is double-sided
  2295.  3    drive B has 80 tracks instead of 40
  2296.  4    drive C is double-sided
  2297.  5    drive C has 80 tracks instead of 40
  2298.  6    drive D is double-sided
  2299.  7    drive D has 80 tracks instead of 40
  2300. Note:    the type for drive A is determined by motherboard switches; the
  2301.       remaining drives' types are set from a table in IO.SYS
  2302. SeeAlso: #2837
  2303. --------b-480B-------------------------------
  2304. INT 48 - TI Professional PC - GET EXTRA SYSTEM CONFIGURATION INFORMATION
  2305.     AH = 0Bh
  2306. Return: AL = drive type byte (see #2838)
  2307.     BX = extra system configuration word 1 (see #2837)
  2308.     CX = extra system configuration word 2 (see #2837)
  2309.     AH destroyed
  2310. SeeAlso: AH=00h,AH=01h,AH=02h,AH=03h,AH=04h,AH=06h,AH=08h,AH=0Ah
  2311. --------V-481A70-----------------------------
  2312. INT 48 U - Compaq UILIB.EXE - INSTALLATION CHECK
  2313.     AX = 1A70h
  2314.     BX = call type (see #2839)
  2315. Return: CX = 5649h ('VI') if installed
  2316.     DX = 4557h ('EW') if installed
  2317.         AX = version??? (0106h)
  2318.  
  2319. (Table 2839)
  2320. Values for UILIB call type:
  2321.  0000h    near
  2322.  0001h    far
  2323.  0002h    INT (only valid call type when using INT 48)
  2324.  0003h    near
  2325. --------B-49---------------------------------
  2326. INT 49 - SYSTEM DATA - NON-KEYBOARD SCAN-CODE TRANSLATION TABLE (PCjr)
  2327. SeeAlso: #2840,INT 48"PCjr"
  2328.  
  2329. Format of PCjr scan-code translation table:
  2330. Offset    Size    Description    (Table 2840)
  2331.  00h    BYTE    number of non-keyboard scancodes in the table
  2332.  01h  N WORDs    high byte 00h (NUL) byte scancode with low order byte
  2333.           representing the scancode mapped values relative to their
  2334.           input values within the range of 56h through 7Eh
  2335. --------h-49---------------------------------
  2336. INT 49 - Z100 - Slave 8259 - S100 vectored line 1
  2337. SeeAlso: INT 48"Z100",INT 4A"Z100"
  2338. --------N-49---------------------------------
  2339. INT 49 - Watstar PC Network data pointer 2
  2340. SeeAlso: INT 48"Watstar"
  2341. --------O-49---------------------------------
  2342. INT 49 - Acorn BBC Master 512 - "OSASCI" - WRITE CHARACTER TO CUR OUTPUT STREAM
  2343.     AL = character to be written
  2344. Return: FLAGS destroyed
  2345. Note:    converts carriage return (0Dh) into CRLF sequence (0Dh 0Ah)
  2346. SeeAlso: INT 40"Acorn",INT 46"Acorn",INT 47"Acorn",INT 48"Acorn"
  2347. --------b-49---------------------------------
  2348. INT 49 - Tandy 2000 - BOOTSTRAP LOADER
  2349. Note:    this interrupt is identical to INT 19
  2350. SeeAlso: INT 19,INT 4A"Tandy 2000",INT 4C"Tandy 2000",INT 51"Tandy 2000"
  2351. --------a-490001-----------------------------
  2352. INT 49 - MAGic v1.16+ - TURN ON MAGNIFICATION
  2353.     AX = 0001h
  2354. Return: AX = status (see #2841)
  2355.     BX,CX,DX destroyed
  2356. Program: MAGic (MAGnification In Color) is a TSR by Microsystems Software, Inc.
  2357.       providing 2x2 text and graphics magnification on VGA, XGA, and SVGA
  2358. Note:    INT 49 is the default, but may be overridden on the commandline.  The
  2359.       actual interrupt in use may be found by searching for the signature
  2360.       "MAGic" or "xMAGic" (for the deluxe version) immediately preceding
  2361.       the interrupt handler (this is also the installation check).    MAGic
  2362.       uses CodeRunneR, which places the signature "RT" at offset 0000h in
  2363.       the interrupt handler's segment, followed by MAGic's TSR ID of
  2364.       "VMAG".
  2365. SeeAlso: AX=0002h,AX=0003h,AX=0004h,AX=0008h
  2366. Index:    installation check;MAGic
  2367.  
  2368. (Table 2841)
  2369. Values for MAGic status:
  2370.  0000h    cannot magnify current video mode
  2371.  0002h    magnified (text mode)
  2372.  0003h    magnified (graphics mode)
  2373.  FFFDh    function works only in magnified mode
  2374.  FFFFh    MAGic busy, retry later
  2375. --------a-490002-----------------------------
  2376. INT 49 - MAGic v1.16+ - TURN OFF MAGNIFICATION
  2377.     AX = 0002h
  2378. Return: AX = status (see #2841)
  2379.     BX,CX,DX destroyed
  2380. SeeAlso: AX=0001h
  2381. --------a-490003-----------------------------
  2382. INT 49 - MAGic v1.16+ - SHIFT MAGNIFIED WINDOW TO INCLUDE SPECIFIED LOCATION
  2383.     AX = 0003h
  2384.     BX = vertical position (character row [text] or pixel row [graphics])
  2385.     DX = horizontal position (char column [text] or 8-pixel units [gr])
  2386. Return: AX = status
  2387.         0000h successful
  2388.         FFFFh MAGic busy, retry later
  2389.     BX,CX,DX destroyed
  2390. Note:    window is not moved if the position is inside the current window
  2391. SeeAlso: AX=0001h,AX=0004h,AX=0005h
  2392. --------a-490004-----------------------------
  2393. INT 49 - MAGic v1.16+ - REPOSITION MAGNIFIED WINDOW
  2394.     AX = 0004h
  2395.     BX = vertical position of upper left corner
  2396.     DX = horizontal position
  2397. Return: AX = status (see AX=0003h)
  2398.     BX,CX,DX destroyed
  2399. SeeAlso: AX=0001h,AX=0003h,AX=0005h
  2400. --------a-490005-----------------------------
  2401. INT 49 - MAGic v1.16+ - GET POSITION OF MAGNIFIED WINDOW
  2402.     AX = 0005h
  2403. Return: AX = status
  2404.         0000h successful
  2405.         BX = vertical position (char row or pixel row)
  2406.         DX = horizontal position (char column or 8-pixel units)
  2407.         FFFFh MAGic busy, retry later
  2408.         BX,DX destroyed
  2409.     CX destroyed
  2410. SeeAlso: AX=0001h,AX=0003h,AX=0004h,AX=0006h,AX=0007h
  2411. --------a-490006-----------------------------
  2412. INT 49 - MAGic v1.16+ - GET SIZE OF FULL SCREEN
  2413.     AX = 0006h
  2414. Return: AX = status
  2415.         0000h successful
  2416.         BX = vertical size (char rows or pixel rows)
  2417.         DX = horizontal size (char cols or 8-pixel units)
  2418.         FFFFh MAGic busy, retry later
  2419.         BX,DX destroyed
  2420.     CX destroyed
  2421. SeeAlso: AX=0001h,AX=0005h,AX=0007h
  2422. --------a-490007-----------------------------
  2423. INT 49 - MAGic v1.16+ - GET SIZE OF MAGNIFICATION WINDOW
  2424.     AX = 0007h
  2425. Return: AX = status
  2426.         0000h successful
  2427.         BX = vertical size (char rows or pixel rows)
  2428.         DX = horizontal size (char cols or 8-pixel units)
  2429.         FFFEh invalid function
  2430.         FFFFh MAGic busy, retry later
  2431.         BX,DX destroyed
  2432.     CX destroyed
  2433. BUG:    in v1.16 and v1.17, this function is not recognized as valid, but
  2434.       AX=0000h is accepted and will branch into hyperspace
  2435. SeeAlso: AX=0001h,AX=0006h
  2436. --------a-490008-----------------------------
  2437. INT 49 - MAGic v1.23+ - SET TEXT MODE MAGNIFICATION SIZE
  2438.     AX = 0008h
  2439.     BX = scaling factor (01h=1.4 times, 02h, 04h, 06h, 08h, 09h=12 times)
  2440. Return: AX = status
  2441.         0000h successful
  2442.         FFFBh scaling factor only available in MAGic Deluxe
  2443.         FFFCh already in magnified state, can't set size
  2444. Notes:    this call specifies the amount a subsequent call to AX=0001h should
  2445.       magnify the display
  2446.     scaling factors greater than 2 are only available in MAGic Deluxe
  2447. SeeAlso: AX=0001h
  2448. --------V-4901-------------------------------
  2449. INT 49 - TI Professional PC - CRT - SET CURSOR SIZE AND TYPE
  2450.     AH = 01h
  2451.     CH = cursor start line (bits 3-0) and status (bits 6-5)
  2452.         status bits:
  2453.         00 non-blinking cursor
  2454.         01 no cursor
  2455.         10 fast-blinking cursor
  2456.         11 slow-blinking cursor
  2457.     CL = cursor end line
  2458. Return: nothing
  2459. Note:    AH=00h,04h,05h,0Bh,0Ch,0Dh,0Fh are documented as NOPs
  2460. SeeAlso: AH=02h,AH=03h,INT 40"TI Professional",INT 48/AH=00h"TI Professional"
  2461. SeeAlso: INT 4A/AH=00h"TI",INT 4B"TI Professional",INT 4D/AH=00h
  2462. SeeAlso: INT 57"TI Professional"
  2463. --------V-4902-------------------------------
  2464. INT 49 - TI Professional PC - CRT - SET CURSOR POSITION
  2465.     AH = 02h
  2466.     DH = column
  2467.     DL = row
  2468. Return: DX destroyed
  2469. Notes:    AH=00h,04h,05h,0Bh,0Ch,0Dh,0Fh are documented as NOPs
  2470.     the TI swaps the row and column compared to the equivalent IBM call
  2471. SeeAlso: AH=01h,AH=03h
  2472. --------V-4903-------------------------------
  2473. INT 49 - TI Professional PC - CRT - GET CURSOR POSTION AND TYPE
  2474.     AH = 03h
  2475. Return: CH = cursor start and status (see AH=01h)
  2476.     CL = cursor end line
  2477.     DH = cursor column
  2478.     DL = cursor row
  2479. Note:    AH=00h,04h,05h,0Bh,0Ch,0Dh,0Fh are documented as NOPs
  2480. SeeAlso: AH=01h,AH=02h
  2481. --------V-4906-------------------------------
  2482. INT 49 - TI Professional PC - CRT - SCROLL UP/COPY WINDOW
  2483.     AH = 06h
  2484.     AL = source blanking
  2485.         00h blank source region (move/scroll)
  2486.         nonzero do not blank source region (copy)
  2487.     DH,DL = source start column,row
  2488.     BH,BL = destination start column,row
  2489.     CH = width of region to move/copy
  2490.     CL = height of region to move/copy
  2491. Return: nothing
  2492. Notes:    AH=00h,04h,05h,0Bh,0Ch,0Dh,0Fh are documented as NOPs
  2493.     the specified region may be wider than the screen, but reliable
  2494.       operation then requires that the height be exactly one row
  2495. SeeAlso: AH=01h,AH=02h,AH=07h,AH=13h,AH=14h
  2496. --------V-4907-------------------------------
  2497. INT 49 - TI Professional PC - CRT - SCROLL DOWN/COPY WINDOW
  2498.     AH = 07h
  2499.     AL = source blanking
  2500.         00h blank source region (move/scroll)
  2501.         nonzero do not blank source region (copy)
  2502.     DH,DL = source start column,row
  2503.     BH,BL = destination start column,row
  2504.     CH = width of region to move/copy
  2505.     CL = height of region to move/copy
  2506. Return: nothing
  2507. Note:    AH=00h,04h,05h,0Bh,0Ch,0Dh,0Fh are documented as NOPs
  2508. SeeAlso: AH=01h,AH=02h,AH=06h,AH=13h,AH=14h
  2509. --------V-4908-------------------------------
  2510. INT 49 - TI Professional PC - CRT - GET CHARACTER AND ATTRIBUTE AT POSITION
  2511.     AH = 08h
  2512. Return: AL = character at current cursor position
  2513.     AH = attribute
  2514. Note:    AH=00h,04h,05h,0Bh,0Ch,0Dh,0Fh are documented as NOPs
  2515. SeeAlso: AH=01h,AH=09h,AH=0Ah,AH=0Eh,INT 10/AH=08h
  2516. --------V-4909-------------------------------
  2517. INT 49 - TI Professional PC - CRT - WRITE CHARACTER(S) WITH ATTRIBUTE
  2518.     AH = 09h
  2519.     AL = character to write
  2520.     BL = attribute to use (becomes new current attribute)
  2521.     CX = number of times to write character
  2522. Return: nothing
  2523. Desc:    write CX copies of the character in AL beginning at the current cursor
  2524.       position
  2525. Note:    AH=00h,04h,05h,0Bh,0Ch,0Dh,0Fh are documented as NOPs
  2526. SeeAlso: AH=01h,AH=08h,AH=0Ah,AH=0Eh,INT 10/AH=09h
  2527. --------V-490A-------------------------------
  2528. INT 49 - TI Professional PC - CRT - WRITE CHARACTER(S) WITH CURRENT ATTRIBUTE
  2529.     AH = 0Ah
  2530.     AL = character to write
  2531.     CX = number of times to write character
  2532. Return: nothing
  2533. Desc:    write CX copies of the character in AL beginning at the current cursor
  2534.       position
  2535. Note:    AH=00h,04h,05h,0Bh,0Ch,0Dh,0Fh are documented as NOPs
  2536. SeeAlso: AH=01h,AH=02h,AH=08h,AH=09h,AH=0Eh,INT 10/AH=0Ah
  2537. --------V-490E-------------------------------
  2538. INT 49 - TI Professional PC - CRT - TTY OUTPUT
  2539.     AH = 0Eh
  2540.     AL = character to write
  2541. Return: nothing
  2542. Desc:    write the character in AL at the current cursor position, advancing
  2543.       the cursor, and interpreting CR, LF, TAB, and BEL characters
  2544. Note:    AH=00h,04h,05h,0Bh,0Ch,0Dh,0Fh are documented as NOPs
  2545. SeeAlso: AH=01h,AH=02h,AH=08h,AH=09h,AH=0Ah,INT 10/AH=0Eh
  2546. --------V-4910-------------------------------
  2547. INT 49 - TI Professional PC - CRT - WRITE BLOCK OF CHARACTERS WITH ATTRIBUTE
  2548.     AH = 10h
  2549.     AL = attribute (becomes new current attribute)
  2550.     DX:BX -> string of characters to write
  2551.     CX = length of string
  2552. Return: nothing
  2553. Note:    AH=00h,04h,05h,0Bh,0Ch,0Dh,0Fh are documented as NOPs
  2554. BUG:    CX must not be 0000h on entry, or the system will crash
  2555. SeeAlso: AH=01h,AH=02h,AH=09h,AH=0Eh,AH=11h
  2556. --------V-4911-------------------------------
  2557. INT 49 - TI Professional PC - CRT - WRITE BLOCK OF CHARACTERS WITH CURR ATTRIB
  2558.     AH = 11h
  2559.     DX:BX -> string of characters to write
  2560.     CX = length of string
  2561. Return: nothing
  2562. Note:    AH=00h,04h,05h,0Bh,0Ch,0Dh,0Fh are documented as NOPs
  2563. BUG:    CX must not be 0000h on entry, or the system will crash
  2564. SeeAlso: AH=01h,AH=02h,AH=09h,AH=0Eh,AH=10h
  2565. --------V-4912-------------------------------
  2566. INT 49 - TI Professional PC - CRT - FILL ENTIRE SCREEN WITH ATTRIBUTE
  2567.     AH = 12h
  2568.     AL = attribute (see #2842)
  2569. Return: nothing
  2570. Note:    AH=00h,04h,05h,0Bh,0Ch,0Dh,0Fh are documented as NOPs
  2571. SeeAlso: AH=01h,AH=02h
  2572.  
  2573. Bitfields for TI Professional PC screen attribute:
  2574. Bit(s)    Description    (Table 2842)
  2575.  7    alternate character set (requires user-supplied ROM)
  2576.  6    blink
  2577.  5    underline
  2578.  4    reverse video
  2579.  3    character enable
  2580.  2    green (color) or 58% intensity (gray-scale)
  2581.  1    red (color)  or 27.5% intensity
  2582.  0    blue (color) or 14.5% intensity
  2583. --------V-4913-------------------------------
  2584. INT 49 - TI Professional PC - CRT - CLEAR ENTIRE TEXT SCREEN AND HOME CURSOR
  2585.     AH = 13h
  2586. Return: nothing
  2587. Note:    AH=00h,04h,05h,0Bh,0Ch,0Dh,0Fh are documented as NOPs
  2588. SeeAlso: AH=01h,AH=02h,AH=06h,AH=14h
  2589. --------V-4914-------------------------------
  2590. INT 49 - TI Professional PC - CRT - CLEAR ENTIRE GRAPHICS SCREEN
  2591.     AH = 14h
  2592. Return: nothing
  2593. Note:    AH=00h,04h,05h,0Bh,0Ch,0Dh,0Fh are documented as NOPs
  2594. SeeAlso: AH=01h,AH=02h,AH=06h,AH=13h
  2595. --------V-4915-------------------------------
  2596. INT 49 - TI Professional PC - CRT - SET PROTECTED STATUS AREA
  2597.     AH = 15h
  2598.     CL = row at which to start status area, or 00h to cancel
  2599.     CH = 00h
  2600. Return: nothing
  2601. Desc:    set a protected area of the screen which will not be affected by TTY
  2602.       writes or the scrolls they may generate
  2603. Notes:    AH=00h,04h,05h,0Bh,0Ch,0Dh,0Fh are documented as NOPs
  2604.     the current cursor position must be above the status area in order to
  2605.       set the protected area
  2606. SeeAlso: AH=01h,AH=02h
  2607. --------V-4916-------------------------------
  2608. INT 49 - TI Professional PC - CRT - SET ATTRIBUTE LATCH
  2609.     AH = 16h
  2610.     BL = new attribute (see #2842)
  2611. Return: nothing
  2612. Note:    AH=00h,04h,05h,0Bh,0Ch,0Dh,0Fh are documented as NOPs
  2613. SeeAlso: AH=01h,AH=02h
  2614. --------V-4917-------------------------------
  2615. INT 49 - TI Professional PC - CRT - GET START-OF-DISPLAY POINTER
  2616.     AH = 17h
  2617. Return: DX = current offset at which display starts
  2618. Note:    AH=00h,04h,05h,0Bh,0Ch,0Dh,0Fh are documented as NOPs
  2619. SeeAlso: AH=01h,AH=02h,INT 10/AH=FEh
  2620. --------V-4918-------------------------------
  2621. INT 49 - TI Professional PC - CRT - PRINT TTY STRING
  2622.     AH = 18h
  2623.     CS:BX -> counted string (count byte with length followed by string)
  2624. Return: nothing
  2625. Notes:    AH=00h,04h,05h,0Bh,0Ch,0Dh,0Fh are documented as NOPs
  2626.     the string must be located in the caller's code segment; any TSRs
  2627.       which want to hook INT 49 must check for this function and emulate
  2628.       it, because the BIOS retrieves the caller's CS from the stack
  2629. SeeAlso: AH=01h,AH=02h,AH=0Eh
  2630. --------B-4A---------------------------------
  2631. INT 4A C - SYSTEM - USER ALARM HANDLER
  2632. Desc:    This interrupt is invoked by the BIOS when a real-time clock alarm
  2633.       occurs; an application may use it to perform an action at a
  2634.       predetermined time.
  2635. Note:    this interrupt is called from within a hardware interrupt handler,
  2636.       so all usual precautions against reentering DOS must be taken
  2637. SeeAlso: INT 1A/AH=06h
  2638. --------h-4A---------------------------------
  2639. INT 4A - Z100 - Slave 8259 - S100 vectored line 2
  2640. SeeAlso: INT 49"Z100",INT 4B"Z100"
  2641. --------b-4A---------------------------------
  2642. INT 4A - Tandy 2000 - PRINT SCREEN
  2643. Note:    this interrupt is identical to INT 05
  2644. SeeAlso: INT 05"PRINT SCREEN"
  2645. --------O-4A---------------------------------
  2646. INT 4A - Acorn BBC Master 512 - "OSWORD" - MISC FUNCTIONS USING CONTROL BLOCK
  2647.     AL = function code
  2648.         FAh transfer data between 80186 and 65C12 I/O processor
  2649.     DS:BX -> control block (see #2843)
  2650. Return: FLAGS destroyed
  2651.     control block updated
  2652. Note:    there are more functions than are listed here, but details are not
  2653.       available
  2654. SeeAlso: INT 40"Acorn",INT 4B"Acorn",INT 4C"Acorn"
  2655.  
  2656. Format of BBC Master control block for function FAh:
  2657. Offset    Size    Description    (Table 2843)
  2658.  00h    BYTE    number of parameters sent to I/O processor (0Dh,0Eh)
  2659.  01h    BYTE    number of parameters read from I/O processor (01h)
  2660.  02h    DWORD    I/O processor address
  2661.  06h    DWORD    80186 segment:offset address
  2662.  0Ah    WORD    number of bytes to transfer
  2663.  0Ch    BYTE    operation type
  2664.         00h write to 65C12 at 24 us/byte
  2665.         01h read from 65C12 at 24 us/byte
  2666.         02h write to 65C12 at 26 us/word
  2667.         03h read from 65C12 at 26 us/word
  2668.         04h write to 65C12 at 10 us/byte using 256-byte blocks
  2669.         05h read from 65C12 at 10 us/byte using 256-byte blocks
  2670.  0Dh    BYTE    65C12 memory access control (only used if offset 00h = 0Eh)
  2671.         (see #2844)
  2672.  
  2673. Bitfields for 65C12 memory access control:
  2674. Bit(s)    Description    (Table 2844)
  2675.  7    unused
  2676.  6    always use main screen memory if I/O addr 3000h-7FFFh (overrides bit 5)
  2677.  5    use shadow screen memory if screen address specified
  2678.  4    use current ROM rather than ROM selected by bits 3-0 (only if I/O
  2679.       address between 8000h and BFFFh)
  2680.  3-0    paged ROM number
  2681. --------b-4A00-------------------------------
  2682. INT 4A - TI Professional PC - KEYBOARD - GET KEYPRESS
  2683.     AH = 00h
  2684. Return: AX = keystroke (AH=00h for ASCII keys -- no scan code)
  2685. SeeAlso: AH=01h,AH=02h,AH=03h,AH=04h,AH=05h,INT 16/AH=00h
  2686. SeeAlso: INT 47"TI Professional",INT 48/AH=00h"TI Professional"
  2687. SeeAlso: INT 49/AH=01h"TI",INT 4C"TI Professional",INT 4D/AH=00h
  2688. SeeAlso: INT 5B"TI Professional"
  2689. --------b-4A01-------------------------------
  2690. INT 4A - TI Professional PC - KEYBOARD - GET KEYBOARD STATUS
  2691.     AH = 01h
  2692. Return: ZF set if no keystroke available
  2693.     ZF clear if keystrokes in buffer
  2694.         AX = next keystroke (AH=00h for ASCII keys -- no scan code)
  2695. SeeAlso: AH=00h,AH=02h,AH=03h,AH=04h,AH=05h,INT 16/AH=01h
  2696. --------b-4A02-------------------------------
  2697. INT 4A - TI Professional PC - KEYBOARD - GET KEYBOARD MODE
  2698.     AH = 02h
  2699. Return: AL = shift states (see #2845)
  2700. SeeAlso: AH=00h,AH=02h,AH=03h,AH=04h,AH=05h,INT 16/AH=02h
  2701.  
  2702. Bitfields for TI Professional PC keyboard shift states:
  2703. Bit(s)    Description    (Table 2845)
  2704.  0    Ctrl key pressed
  2705.  1    Alt key pressed
  2706.  2    either Shift key pressed
  2707.  3-6    0
  2708.  7    CapsLock is ON
  2709. --------b-4A03-------------------------------
  2710. INT 4A - TI Professional PC - KEYBOARD - FLUSH KEYBOARD BUFFER
  2711.     AH = 03h
  2712. Return: nothing
  2713. SeeAlso: AH=00h,AH=02h,AH=03h,AH=04h,AH=05h
  2714. --------b-4A04-------------------------------
  2715. INT 4A - TI Professional PC - KEYBOARD - SEND COMMAND TO KEYBOARD
  2716.     AH = 04h
  2717.     AL = command
  2718.         00h reset to default states
  2719.         01h enable auto-repeat (default)
  2720.         02h disable auto-repeat
  2721.         03h lock keyboard
  2722.         04h unlock keyboard (default)
  2723.         05h enable keyclick (requires hardware modification to work)
  2724.         06h disable keyclick (default)
  2725. Return: nothing
  2726. SeeAlso: AH=00h,AH=02h,AH=03h,AH=04h,AH=05h
  2727. --------b-4A05-------------------------------
  2728. INT 4A - TI Professional PC - KEYBOARD - INSERT CHARACTER INTO KEYBOARD BUFFER
  2729.     AH = 05h
  2730.     BX = character code (BH=00h if ASCII character, BL=00h/BH nonzero for
  2731.           extended codes) (see #2846)
  2732. Return: ZF set if keyboard buffer was already full
  2733.     ZF clear if keystroke inserted into buffer
  2734. SeeAlso: AH=00h,AH=02h,AH=03h,AH=04h,AH=05h,INT 5B"TI"
  2735.  
  2736. (Table 2846)
  2737. Values for TI Professional PC scan/character codes:
  2738.  Scan    Key    Normal    Shift    Ctrl    Alt    Notes
  2739.  00h      -- unused
  2740.  01h    F5    3F00h    5800h    6200h    6C00h
  2741.  02h    F6    4000h    5900h    6300h    6D00h
  2742.  03h    F7    4100h    5A00h    6400h    6E00h
  2743.  04h    F8    4200h    5B00h    6500h    6F00h
  2744.  05h    F9    4300h    5C00h    6600h    7000h
  2745.  06h    F10    4400h    5D00h    6700h    7100h
  2746.  07h    F11    4500h    0800h    0A00h    0C00h
  2747.  08h    F12    4600h    0900h    0B00h    0D00h
  2748.  09h    1 !    0031h    0021h    ----    7800h
  2749.  0Ah    2 @    0032h    0040h    0300h    7900h
  2750.  0Bh    3 #    0033h    0023h    ----    7A00h
  2751.  0Ch    4 $    0034h    0024h    ----    7B00h
  2752.  0Dh    5 %    0035h    0025h    ----    7C00h
  2753.  0Eh    6 ^    0036h    005Eh    001Eh    7D00h
  2754.  0Fh    7 &    0037h    0026h    ----    7E00h
  2755.  10h    8 *    0038h    002Ah    ----    7F00h
  2756.  11h    9 (    0039h    0028h    ----    8000h
  2757.  12h    0 )    0030h    0029h    ----    8100h
  2758.  13h    - _    002Dh    005Fh    001Fh    8200h
  2759.  14h    = +    003Dh    002Bh    ----    8300h
  2760.  15h BACK SPACE 0008h    0008h    007Fh    ----
  2761.  16h    ` ~    0060h    007Eh    ----    ----
  2762.  17h    NUM =    003Dh    003Dh    003Dh    8C00h
  2763.  18h    NUM +    002Bh    002Bh    002Bh    8D00h
  2764.  19h   NUM SPAC    0020h    0020h    0020h    8E00h
  2765.  1Ah   NUM TAB    0009h    0F00h    0009h    8F00h
  2766.  1Bh    NUM 1    0031h    0031h    0031h    (alt-###)    [Note 5]
  2767.  1Ch    (unused)
  2768.  1Dh    NUM 0    0030h    0030h    0030h    (alt-###)    [Note 5]
  2769.  1Eh  NUM ENTER    000Dh    000Dh    000Dh    ----
  2770.  1Fh    NUM 4    0034h    0034h    0034h    (alt-###)    [Note 5]
  2771.  20h    NUM 5    0035h    0035h    0035h    (alt-###)    [Note 5]
  2772.  21h    NUM 9    0039h    0039h    0039h    (alt-###)    [Note 5]
  2773.  22h    NUM -    002Dh    002Dh    002Dh    ----
  2774.  23h    NUM 2    0032h    0032h    0032h    (alt-###)    [Note 5]
  2775.  24h-26h  -- unused
  2776.  27h    NUM 7    0037h    0037h    0037h    (alt-###)    [Note 5]
  2777.  28h    NUM 8    0038h    0038h    0038h    (alt-###)    [Note 5]
  2778.  29h    NUM 6    0036h    0036h    0036h    (alt-###)    [Note 5]
  2779.  2Ah    NUM ,    002Ch    002Ch    002Ch    ----
  2780.  2Bh    NUM 3    0033h    0033h    0033h    (alt-###)    [Note 5]
  2781.  2Ch    NUM .    002Eh    002Eh    002Eh    ----
  2782.  2Dh    PRINT    7200h    [Note2]    ----    ----    [Notes 1,2]
  2783.  2Eh   RtArrow    4D00h    8A00h    7400h    4E00h
  2784.  2Fh    INS    5200h    2800h    2900h    2A00h    [Note 1]
  2785.  30h    DEL    5300h    3800h    3900h    3A00h    [Note 1]
  2786.  31h    TAB    0009h    0F00h    0009h    ----
  2787.  32h    Q    0071h    0051h    0011h    1000h
  2788.  33h    W    0077h    0057h    0017h    1100h
  2789.  34h    E    0065h    0045h    0005h    1200h
  2790.  35h    R    0072h    0052h    0012h    1300h
  2791.  36h    T    0074h    0054h    0014h    1400h
  2792.  37h    Y    0079h    0059h    0019h    1500h
  2793.  38h    U    0075h    0055h    0015h    1600h
  2794.  39h    I    0069h    0049h    0009h    1700h
  2795.  3Ah    O    006Fh    004Fh    000Fh    1800h
  2796.  3Bh    P    0070h    0050h    0010h    1900h
  2797.  3Ch    [ {    005Bh    007Bh    001Bh    ----
  2798.  3Dh    ] }    005Dh    007Dh    001Dh    ----
  2799.  3Eh  LINE FEED    000Ah    000Ah    7500h    4F00h
  2800.  3Fh  BRK/PAUS    [Note3]    [Note4]    ----    ----    [Notes 1,3,4]
  2801.  40h  UpArrow    4800h    8800h    8400h    4900h
  2802.  41h    ESC    001Bh    001Bh    001Bh    ----
  2803.  42h    A    0061h    0041h    0001h    1E00h
  2804.  43h    S    0073h    0053h    0013h    1F00h
  2805.  44h    D    0064h    0044h    0004h    2000h
  2806.  45h    F    0066h    0046h    0006h    2100h
  2807.  46h    G    0067h    0047h    0007h    2200h
  2808.  47h    H    0068h    0048h    0008h    2300h
  2809.  48h    J    006Ah    004Ah    000Ah    2400h
  2810.  49h    K    006Bh    004Bh    000Bh    2500h
  2811.  4Ah    L    006Ch    004Ch    000Ch    2600h
  2812.  4Bh    ; :    003Bh    003Ah    ----    ----
  2813.  4Ch    ' "    0027h    0022h    ----    ----
  2814.  4Dh    RETURN    000Dh    000Dh    000Dh    ----
  2815.  4Eh    \ |    005Ch    007Ch    001Ch    ----
  2816.  4Fh  LeftArrow    4B00h    8B00h    7300h    4C00h
  2817.  50h    HOME    4700h    8600h    7700h    8500h
  2818.  51h  Space Bar    0020h    0020h    0020h    0020h
  2819.  52h    Z    007Ah    005Ah    001Ah    2C00h
  2820.  53h    X    0078h    0058h    0018h    2D00h
  2821.  54h    C    0063h    0043h    0003h    2E00h
  2822.  55h    V    0076h    0056h    0016h    2F00h
  2823.  56h    B    0062h    0042h    0002h    3000h
  2824.  57h    N    006Eh    004Eh    000Eh    3100h
  2825.  58h    M    006Dh    004Dh    000Dh    3200h
  2826.  59h    , <    002Ch    003Ch    ----    ----
  2827.  5Ah  PRINT    7200h    [Note2]    ----    ----    [Notes 1,2]
  2828.  5Bh    . >    002Eh    003Eh    ----    ----
  2829.  5Ch    / ?    002Fh    003Fh    ----    ----
  2830.  5Dh    (unused)
  2831.  5Eh    DEL    5300h    3800h    3900h    3A00h    [Note 1]
  2832.  5Fh    INS    5200h    2800h    2900h    2A00h    [Note 1]
  2833.  60h  DownArrow    5000h    8900h    7600h    5100h
  2834.  61h-63h  -- unused
  2835.  64h  BRK/PAUS    [Note3]    [Note4]    ----    ----    [Notes 1,3,4]
  2836.  65h    F1    3B00h    5400h    5E00h    6800h
  2837.  66h    F2    3C00h    5500h    5F00h    6900h
  2838.  67h    F3    3D00h    5600h    6000h    6A00h
  2839.  68h    F4    3E00h    5700h    6100h    6B00h
  2840.  69h-6Fh  -- unused
  2841. Notes:    [1] four of the keys can have differing scan codes, depending on the
  2842.       actual keyboard; the BIOS accepts either scan code ("normal": 2Fh,
  2843.       30h, 5Ah, 64h; "alternate": 2Dh,3Fh,5Eh,5Fh) for any of these keys
  2844.     [2] Shift-Print invokes INT 5E for a screen dump; the PRTSCRN.DEV
  2845.       device driver also supports Alt-Print, Ctrl-Print, Shift-Alt-Print,
  2846.       and Shift-Ctrl-Print for dumping graphics in various permutations
  2847.     [3] BRK/PAUS invokes INT 5C for a pause, then stuffs 0100h into the
  2848.       keyboard buffer
  2849.     [4] Shift-BRK/PAUS invokes INT 5D for the Break, then stuffs 0000h
  2850.       into the keyboard buffer; MS-DOS hooks INT 5D to keep the 0000h from
  2851.       appearing in the keyboard buffer
  2852.     [5] on the TI Pro, one enters an arbitrary character slightly
  2853.       differently than on a standard PC: exactly three numberpad digits
  2854.       must be pressed (using leading zeros for codes less than 100), and
  2855.       the key for the requested code is inserted into the keyboard buffer
  2856.       immediately on pressing the third key.  The Alt key may be released
  2857.       and re-pressed arbitrarily often between digits without affecting
  2858.       the Alt-digit-digit-digit sequence.
  2859.     scan codes with bit 7 set are not key releases, but rather
  2860.       auto-repeated keystrokes, which the BIOS only places into the
  2861.       keyboard buffer if the buffer is empty at the time (thus avoiding
  2862.       typeahead of repeated keystrokes faster than they can be processed)
  2863. SeeAlso: #0005 at INT 09
  2864. --------h-4B---------------------------------
  2865. INT 4B - Z100 - Slave 8259 - S100 vectored line 3
  2866. SeeAlso: INT 4A"Z100",INT 4C"Z100"
  2867. --------d-4B---------------------------------
  2868. INT 4B - Common Access Method SCSI interface (draft revision 1.9)
  2869.     ES:DI -> CAM Control Block (see #2861 at INT 4F/AX=8100h)
  2870. Notes:    the CAM committee moved the interface to INT 4F after revision 1.9
  2871.       to avoid conflicting with the IBM SCSI interface and the Virtual
  2872.       DMA specification
  2873.     the installation check for the driver is the string "SCSI_CAM" eight
  2874.       bytes past the INT 4Bh handler
  2875.     the only driver to date reported to use the CAM interface on INT 4B
  2876.       instead of INT 4F is from Future Domain (which has drivers for CAM
  2877.       on either interrupt)
  2878. SeeAlso: INT 4F/AX=8100h
  2879. Index:    installation check;Common Access Method SCSI interface
  2880. --------b-4B---------------------------------
  2881. INT 4B - Tandy 2000 - EQUIPMENT DETERMINATION
  2882. Return: AX = BIOS equipment list word (see #2847)
  2883. Note:    this interrupt is identical to INT 11 on the Tandy 2000
  2884. SeeAlso: INT 11"EQUIPMENT",INT 4A"Tandy 2000",INT 4C"Tandy 2000"
  2885.  
  2886. Bitfields for Tandy 2000 BIOS equipment list:
  2887. Bit(s)    Description    (Table 2847)
  2888.  0    reserved
  2889.  1    monochrome graphics installed
  2890.  2    graphics with color option installed
  2891.  3    floppy disk drive 1 installed
  2892.  4    floppy disk drive 2 installed
  2893.  5    hard disk drive 1 installed
  2894.  6    hard disk drive 2 installed
  2895.  7    unused
  2896.  8    black and white monitor
  2897.  9    color monitor
  2898.  12-10    reserved
  2899.  13    printer installed
  2900.  14    reserved
  2901.  15    unused
  2902. SeeAlso: #0151 at INT 11
  2903. --------O-4B---------------------------------
  2904. INT 4B - Acorn BBC Master 512 - "OSBYTE" - MISC FUNCTIONS USING REGISTER PARAMS
  2905.     AL = function code
  2906.     BL = first parameter
  2907.     BH = second parameter (if needed)
  2908. Return: BL = first return parameter
  2909.     BH = second return parameter
  2910.     CF depends on function
  2911. SeeAlso: INT 40"Acorn",INT 4A"Acorn",INT 4C"Acorn"
  2912. --------b-4B00-------------------------------
  2913. INT 4B - TI Professional PC - PARALLEL PORT - OUTPUT CHARACTER
  2914.     AH = 00h
  2915.     DL = printer number (00h)
  2916.     AL = character to print
  2917. Return: AH = printer status (see #2848)
  2918. Note:    on the TI Pro, the BIOS only supports DL=00h; MS-DOS versions for the
  2919.       TI hook INT 4B and handle requests for DL<>00h
  2920. SeeAlso: AH=01h,AH=02h,INT 17/AH=00h
  2921. SeeAlso: INT 40"TI Professional",INT 48/AH=00h"TI Professional"
  2922. SeeAlso: INT 49/AH=01h"TI",INT 4C"TI Professional",INT 4D/AH=00h
  2923.  
  2924. Bitfields for TI Professional PC printer status:
  2925. Bit(s)    Description    (Table 2848)
  2926.  0    timeout (function 00h only)
  2927.  3-1    unused
  2928.  4    busy
  2929.  5    paper out
  2930.  6    on-line (selected)
  2931.  7    fault
  2932. --------b-4B01-------------------------------
  2933. INT 4B - TI Professional PC - PARALLEL PORT - INITIALIZE PRINTER
  2934.     AH = 01h
  2935.     DL = printer number (00h)
  2936. Return: AH = printer status (see #2848)
  2937. Note:    on the TI Pro, the BIOS only supports DL=00h; MS-DOS versions for the
  2938.       TI hook INT 4B and handle requests for DL<>00h
  2939. SeeAlso: AH=00h,AH=02h,INT 17/AH=01h
  2940. --------b-4B02-------------------------------
  2941. INT 4B - TI Professional PC - PARALLEL PORT - GET PRINTER STATUS
  2942.     AH = 02h
  2943.     DL = printer number (00h)
  2944. Return: AH = printer status (see #2848)
  2945. Note:    on the TI Pro, the BIOS only supports DL=00h; MS-DOS versions for the
  2946.       TI hook INT 4B and handle requests for DL<>00h
  2947. SeeAlso: AH=00h,AH=01h,INT 17/AH=02h
  2948. --------d-4B80-------------------------------
  2949. INT 4B - IBM SCSI interface
  2950.     AH = 80h
  2951.     AL = 00h-10h (Corel PowerSCSI INT4BCAM.SYS)
  2952.     further details not yet available
  2953. --------d-4B8102DX0000-----------------------
  2954. INT 4B - Virtual DMA Specification (VDS) - GET VERSION
  2955.     AX = 8102h
  2956.     DX = 0000h
  2957. Return: CF clear if successful
  2958.         AH = major version number
  2959.         AL = minor version number
  2960.         BX = product number (see #2849)
  2961.         CX = product revision number
  2962.         always 0000h for QMAPS and HPMM.SYS
  2963.         always 0001h for Microsoft's EMM386.EXE v4.20-4.41
  2964.         DX = flags (see #2851)
  2965.         SI:DI = maximum DMA buffer size
  2966.     CF set on error
  2967.         AL = error code (see #2850)
  2968. Note:    bit 5 of 0040h:007Bh is supposed to be set if VDS is supported; this is
  2969.       apparently not always the case
  2970. SeeAlso: INT 2C/AX=002Bh,INT 31/AX=0400h
  2971. Index:    installation check;Virtual DMA Spec
  2972.  
  2973. (Table 2849)
  2974. Values for VDS product number:
  2975.  0000h    for Quadtel's QMAPS and Hewlett-Packard's HPMM.SYS
  2976.  0001h    for Microsoft's EMM386.EXE
  2977.  0003h    for Windows 3.x WIN386.EXE
  2978.  0300h    OS/2 (all versions to date)
  2979.  0EDCh    for DR DOS 6.0 EMM386.SYS
  2980.  4560h    ("E`") for Qualitas' 386MAX
  2981.  4D43h    ("MC") for V Communications' Memory Commander
  2982.  5145h    ("QE") for Quarterdeck's QEMM-386
  2983.  524Dh    ("RM") for Helix's Netroom RM386
  2984.  
  2985. (Table 2850)
  2986. Values for VDS error code:
  2987.  01h    region not in contiguous memory
  2988.  02h    region crossed a physical alignment boundary
  2989.  03h    unable to lock pages
  2990.  04h    no buffer available
  2991.  05h    region too large for buffer
  2992.  06h    buffer currently in use
  2993.  07h    invalid memory region
  2994.  08h    region was not locked
  2995.  09h    number of physical pages greater than table length
  2996.  0Ah    invalid buffer ID
  2997.  0Bh    copy out of buffer range
  2998.  0Ch    invalid DMA channel number
  2999.  0Dh    disable count overflow
  3000.  0Eh    disable count underflow
  3001.  0Fh    function not supported
  3002.  10h    reserved flag bits set in DX
  3003.  
  3004. Bitfields for VDS flags:
  3005. Bit(s)    Description    (Table 2851)
  3006.  0    PC/XT bus (DMA in first megabyte only)
  3007.  1    physical buffer/remap region in first megabyte
  3008.  2    automatic remap enabled
  3009.  3    all memory is physically contiguous
  3010.  4-15    reserved (zero)
  3011. --------d-4B8103-----------------------------
  3012. INT 4B - Virtual DMA Specification - LOCK DMA REGION
  3013.     AX = 8103h
  3014.     DX = flags (see #2852)
  3015.     ES:DI -> DMA descriptor structure (see #2853,#2854,#2855)
  3016. Return: CF clear if successful
  3017.         DDS physical address field filled in
  3018.         DDS buffer ID field filled (0000h if no buffer allocated)
  3019.     CF set on error
  3020.         AL = error code (see #2850)
  3021.         DDS region size field filled wth maximum contiguous length in bytes
  3022. BUGS:    Windows 3.0 does not correctly support automatic remapping or copying
  3023.       in enhanced mode
  3024.     Windows 3.0 in enhanced mode does not return a correct code on error
  3025. SeeAlso: AX=8104h,AX=8105h
  3026.  
  3027. Bitfields for VDS flags:
  3028. Bit(s)    Description    (Table 2852)
  3029.  0    reserved (zero)
  3030.  1    data should be copied into buffer (ignored if 2 set)
  3031.  2    buffer should not be allocated if region noncontiguous or crosses
  3032.       physical alignment boundary specified by 4-5
  3033.  3    don't attempt automatic remap
  3034.  4    region must not cross 64K physical alignment boundary
  3035.  5    region must not cross 128K physical alignment boundary
  3036.  6-15    reserved (zero)
  3037.  
  3038. Format of DMA descriptor structure (DDS):
  3039. Offset    Size    Description    (Table 2853)
  3040.  00h    DWORD    region size
  3041.  04h    DWORD    offset
  3042.  08h    WORD    segment/selector
  3043.  0Ah    WORD    buffer ID
  3044.  0Ch    DWORD    physical address
  3045.  
  3046. Format of Extended DMA descriptor structure (EDDS):
  3047. Offset    Size    Description    (Table 2854)
  3048.  00h    DWORD    region size
  3049.  04h    DWORD    offset
  3050.  08h    WORD    segment/selector
  3051.  0Ah    WORD    reserved
  3052.  0Ch    WORD    number available
  3053.  0Eh    WORD    number used
  3054.  10h    DWORD    region 0 physical address
  3055.  14h    DWORD    region 0 size in bytes
  3056.  18h    DWORD    region 1 physical address
  3057.  1Ch    DWORD    region 1 size in bytes
  3058.     ...
  3059.  
  3060. Format of Extended DMA descriptor structure (EDDS) with page table entries:
  3061. Offset    Size    Description    (Table 2855)
  3062.  00h    DWORD    region size
  3063.  04h    DWORD    offset
  3064.  08h    WORD    segment/selector
  3065.  0Ah    WORD    reserved
  3066.  0Ch    WORD    number available
  3067.  0Eh    WORD    number used
  3068.  10h    DWORD    page table entry 0 (same as 80386 page table entry)
  3069.  14h    DWORD    page table entry 1
  3070.     ...
  3071. Note:    bits 1-11 of the page table entries should be zero; bit 0 set if page
  3072.       is present and locked
  3073. --------d-4B8104-----------------------------
  3074. INT 4B - Virtual DMA Specification - UNLOCK DMA REGION
  3075.     AX = 8104h
  3076.     DX = flags
  3077.         bit 0: reserved (zero)
  3078.         bit 1: data should be copied out of buffer
  3079.         bits 2-15 reserved (zero)
  3080.     ES:DI -> DMA descriptor structure (see #2853,#2854) with region size,
  3081.           physical address, and buffer ID fields set
  3082. Return: CF clear if successful
  3083.         DDS physical address field set
  3084.         DDS buffer ID field set (0000h if no buffer allocated)
  3085.     CF set on error
  3086.         AL = error code (see #2850)
  3087.         DDS region size field filled wth maximum contiguous length in bytes
  3088. Note:    Windows 3.0 does not check whether the region extends beyond the end of
  3089.       a segment
  3090. BUG:    Windows 3.0 in enhanced mode does not return a correct code on error
  3091. SeeAlso: AX=8103h,AX=8106h
  3092. --------d-4B8105-----------------------------
  3093. INT 4B - Virtual DMA Specification - SCATTER/GATHER LOCK REGION
  3094.     AX = 8105h
  3095.     DX = flags (see #2856)
  3096.     ES:DI -> Extended DMA descriptor structure (see #2854,#2855)
  3097.           region size, linear segment, linear offset, and number avail
  3098.           fields set
  3099. Return: CF clear if successful
  3100.         EDDS number used field set
  3101.         if DX bit 6 set, lower 12 bits of BX = offset in first page
  3102.     CF set on error
  3103.         AL = error code (see #2850)
  3104.         EDDS region size field filled with max length in bytes that can be
  3105.           locked and described in the EDDS table
  3106. BUG:    Windows 3.0 in enhanced mode may return zero instead of the physical
  3107.       page address for pages which were originally not present
  3108. SeeAlso: AX=8103h,AX=8106h
  3109.  
  3110. Bitfields for VDS flags:
  3111. Bit(s)    Description    (Table 2856)
  3112.  0-5    reserved (zero)
  3113.  6    EDDS should be returned with page table entries
  3114.  7    only present pages should be locked (not-present pages receive entry
  3115.       of 0000h)
  3116.  8-15    reserved (zero)
  3117. --------d-4B8106-----------------------------
  3118. INT 4B - Virtual DMA Specification - SCATTER/GATHER UNLOCK REGION
  3119.     AX = 8106h
  3120.     DX = flags (see #2857)
  3121.     ES:DI -> Extended DMA descriptor structure (see #2854,#2855) returned
  3122.           by AX=8105h
  3123. Return: CF clear if successful
  3124.     CF set on error
  3125.         AL = error code (see #2850)
  3126. Note:    according to the Microsoft version of the VDS specification, the
  3127.       actual scatter/gather list is ignored, while according to the IBM
  3128.       version of the specification, "the result of a LOCK operation"
  3129.       must be provided to this function
  3130. SeeAlso: AX=8104h,AX=8105h
  3131.  
  3132. Bitfields for VDS flags:
  3133. Bit(s)    Description    (Table 2857)
  3134.  0-5    reserved (zero)
  3135.  6    EDDS contains page table entries
  3136.  7    EDDS may contain not-present pages (entry = 0000h)
  3137.  8-15    reserved (zero)
  3138. --------d-4B8107-----------------------------
  3139. INT 4B - Virtual DMA Specification - REQUEST DMA BUFFER
  3140.     AX = 8107h
  3141.     DX = flags
  3142.         bit 0: reserved (zero)
  3143.         bit 1: data should be copied into buffer
  3144.         bits  2-15 reserved (zero)
  3145.     ES:DI -> DMA descriptor structure (see #2853) with region size set
  3146.           (also region offset and region segment if DX bit 1 set)
  3147. Return: CF clear if successful
  3148.         DDS physical address and buffer ID set
  3149.         DDS region size filled with length of buffer
  3150.     CF set on error
  3151.         AL = error code (see #2850)
  3152. SeeAlso: AX=8108h
  3153. --------d-4B8108-----------------------------
  3154. INT 4B - Virtual DMA Specification - RELEASE DMA BUFFFER
  3155.     AX = 8108h
  3156.     DX = flags
  3157.         bit 0: reserved (zero)
  3158.         bit 1: data should be copied out of buffer
  3159.         bits 2-15 reserved (zero)
  3160.     ES:DI -> DMA descriptor structure (see #2853,#2854) with buffer ID set
  3161.           (also region size/region offset/segment if DX bit 1 set)
  3162. Return: CF clear if successful
  3163.     CF set on error
  3164.         AL = error code (see #2850)
  3165. BUG:    under Windows 3.0 Enhanced mode, you must specify that data be copied
  3166.       for this function to work correctly
  3167. SeeAlso: AX=8107h
  3168. --------d-4B8109DX0000-----------------------
  3169. INT 4B - Virtual DMA Specification - COPY INTO DMA BUFFER
  3170.     AX = 8109h
  3171.     DX = 0000h
  3172.     ES:DI -> DMA descriptor structure (see #2853,#2854) with buffer ID,
  3173.           region segment/offset, and region size fields set
  3174.     BX:CX = starting offset into DMA buffer
  3175. Return: CF clear if successful
  3176.     CF set on error
  3177.         AL = error code (see #2850)
  3178. BUG:    Windows 3.0 Enhanced mode does not correctly interpret the copy count
  3179. SeeAlso: AX=810Ah
  3180. --------d-4B810ADX0000-----------------------
  3181. INT 4B - Virtual DMA Specification - COPY OUT OF DMA BUFFER
  3182.     AX = 810Ah
  3183.     DX = 0000h
  3184.     ES:DI -> DMA descriptor structure (see #2853,#2855) with buffer ID,
  3185.           region segment/offset, and region size fields set
  3186.     BX:CX = starting offset into DMA buffer
  3187. Return: CF clear if successful
  3188.     CF set on error
  3189.         AL = error code (see #2850)
  3190. BUG:    Windows 3.0 Enhanced mode does not correctly interpret the copy count
  3191. SeeAlso: AX=8109h
  3192. --------d-4B810B-----------------------------
  3193. INT 4B - Virtual DMA Specification - DISABLE DMA TRANSLATION
  3194.     AX = 810Bh
  3195.     BX = DMA channel number
  3196.     DX = 0000h
  3197. Return: CF clear if successful
  3198.     CF set on error
  3199.         AL = error code (see #2850)
  3200. SeeAlso: AX=810Ch
  3201. --------d-4B810C-----------------------------
  3202. INT 4B - Virtual DMA Specification - ENABLE DMA TRANSLATION
  3203.     AX = 810Ch
  3204.     BX = DMA channel number
  3205.     DX = 0000h
  3206. Return: CF clear if successful
  3207.         ZF set if disable count decremented to zero
  3208.     CF set on error
  3209.         AL = error code (see #2850)
  3210. SeeAlso: AX=810Bh
  3211. --------Q-4B810D-----------------------------
  3212. INT 4B - QEMM-386 - BUG
  3213.     AX = 810Dh
  3214. Note:    the code in QEMM v5.11 and 6.00 jumps to an invalid location on this
  3215.       call
  3216. --------h-4C---------------------------------
  3217. INT 4C - Z100 - Slave 8259 - S100 vectored line 4
  3218. SeeAlso: INT 4B"Z100",INT 4D"Z100"
  3219. --------b-4C---------------------------------
  3220. INT 4C - TI Professional PC - CLOCK/ANALOG INTERFACE
  3221.     no details available
  3222. SeeAlso: INT 40"TI Professional",INT 49/AH=01h"TI"
  3223. SeeAlso: INT 4A/AH=00h"TI",INT 4B"TI Professional",INT 4D/AH=00h
  3224. SeeAlso: INT 58"TI Professional"
  3225. --------b-4C---------------------------------
  3226. INT 4C - Tandy 2000 - GET MEMORY SIZE
  3227. Return: AX = kilobytes of contiguous memory starting at 0
  3228. Note:    this interrupt is identical to INT 12 on the Tandy 2000
  3229. SeeAlso: INT 12"BIOS",INT 4A"Tandy 2000",INT 4B"Tandy 2000",INT 51"Tandy 2000"
  3230. --------O-4C---------------------------------
  3231. INT 4C - Acorn BBC Master 512 - "OSCLI" - INTERPRET COMMAND LINE
  3232.     DS:BX -> CR-terminated command string
  3233. Return: FLAGS destroyed
  3234. SeeAlso: INT 40"Acorn",INT 4A"Acorn",INT 4B"Acorn"
  3235. --------h-4D---------------------------------
  3236. INT 4D - Z100 - Slave 8259 - S100 vectored line 5
  3237. SeeAlso: INT 4C"Z100",INT 4E"Z100"
  3238. --------s-4D---------------------------------
  3239. INT 4D - IBM - M-Audio Adapter SUPPORT
  3240.     no details available; supposedly documented in IBM form G571-0203-01
  3241. --------B-4D00-------------------------------
  3242. INT 4D - TI Professional PC - DISK - RESET DISK SYSTEM
  3243.     AH = 00h
  3244.     DL = drive (if bit 7 is set both hard disks and floppy disks reset)
  3245. Return: AH = status (see #0159 at INT 13/AH=01h)
  3246.     CF clear if successful (returned AH=00h)
  3247.     CF set on error
  3248. Note:    this function is the same as INT 13/AH=00h on a standard PC BIOS
  3249. SeeAlso: AH=01h,AH=02h,AH=08h,AH=0Bh,INT 13/AH=00h,INT 46"TI Professional"
  3250. SeeAlso: INT 48/AH=00h"TI Professional",INT 4A/AH=00h"TI"
  3251. --------B-4D01-------------------------------
  3252. INT 4D - TI Professional PC - DISK - GET STATUS OF LAST OPERATION
  3253.     AH = 01h
  3254.     DL = drive (bit 7 set for hard disk)
  3255. Return: CF clear if status unchanged
  3256.     CF set if status changed since last call
  3257.     AH = 00h
  3258.     AL = status of previous operation (see #0159 at INT 13/AH=01h)
  3259. Notes:    this function is nearly the same as INT 13/AH=01h on a standard PC BIOS
  3260.     the TI's BIOS tranparently performs a number of retries, and an error
  3261.       status is only reported if all of the retries fail.  To get the error
  3262.       status if the operation succeeded on a retry, use AH=07h instead
  3263. SeeAlso: AH=00h,AH=07h,INT 13/AH=01h
  3264. --------B-4D02-------------------------------
  3265. INT 4D - TI Professional PC - DISK - READ SECTOR(S) INTO MEMORY
  3266.     AH = 02h
  3267.     AL = number of sectors to read (must be nonzero)
  3268.     CH = low eight bits of cylinder number
  3269.     CL = sector number 1-63 (bits 0-5)
  3270.          high two bits of cylinder (bits 6-7, hard disk only)
  3271.     DH = head number
  3272.     DL = drive number (bit 7 set for hard disk)
  3273.     ES:BX -> data buffer
  3274. Return: CF set on error
  3275.         if AH = 11h (corrected ECC error), AL = burst length
  3276.     CF clear if successful
  3277.     AH = status (see #0159 at INT 13/AH=01h)
  3278.     AL = number of sectors transferred
  3279.     ES:BX -> buffer for last sector processed (including one with errors)
  3280. SeeAlso: AH=00h,AH=01h,AH=03h,AH=04h,INT 13/AH=02h
  3281. --------B-4D03-------------------------------
  3282. INT 4D - TI Professional PC - DISK - WRITE SECTOR(S) FROM MEMORY
  3283.     AH = 03h
  3284.     AL = number of sectors to write (must be nonzero)
  3285.     CH = low eight bits of cylinder number
  3286.     CL = sector number 1-63 (bits 0-5)
  3287.          high two bits of cylinder (bits 6-7, hard disk only)
  3288.     DH = head number
  3289.     DL = drive number (bit 7 set for hard disk)
  3290.     ES:BX -> buffer containing data
  3291. Return: CF set on error
  3292.         if AH = 11h (corrected ECC error), AL = burst length
  3293.     CF clear if successful
  3294.     AH = status (see #0159 at INT 13/AH=01h)
  3295.     AL = number of sectors transferred
  3296.     ES:BX -> buffer for last sector processed (including one with errors)
  3297. SeeAlso: AH=00h,AH=01h,AH=02h,AH=04h,INT 13/AH=03h
  3298. --------B-4D04-------------------------------
  3299. INT 4D - TI Professional PC - DISK - VERIFY DISK SECTOR CRC(S)
  3300.     AH = 04h
  3301.     AL = number of sectors to verify (must be nonzero)
  3302.     CH = low eight bits of cylinder number
  3303.     CL = sector number 1-63 (bits 0-5)
  3304.          high two bits of cylinder (bits 6-7, hard disk only)
  3305.     DH = head number
  3306.     DL = drive number (bit 7 set for hard disk)
  3307.     ES:BX -> data buffer
  3308. Return: CF set on error
  3309.         if AH = 11h (corrected ECC error), AL = burst length
  3310.     CF clear if successful
  3311.     AH = status (see #0159 at INT 13/AH=01h)
  3312.     AL = number of sectors transferred
  3313.     ES:BX -> buffer for last sector processed (including one with errors)
  3314. Note:    even though no data is transferred, ES:BX must still be valid
  3315. SeeAlso: AH=00h,AH=01h,AH=02h,AH=06h,INT 13/AH=04h
  3316. --------B-4D05-------------------------------
  3317. INT 4D - TI Professional PC - DISK - NOP
  3318.     AH = 05h
  3319. Note:    on the TI Pro, FORMAT.COM contains direct port I/O commands to perform
  3320.       disk formatting, rather than using the BIOS
  3321. --------B-4D06-------------------------------
  3322. INT 4D - TI Professional PC - DISK - VERIFY DISK SECTOR(S)
  3323.     AH = 06h
  3324.     AL = number of sectors to verify (must be nonzero)
  3325.     CH = low eight bits of cylinder number
  3326.     CL = sector number 1-63 (bits 0-5)
  3327.          high two bits of cylinder (bits 6-7, hard disk only)
  3328.     DH = head number
  3329.     DL = drive number (bit 7 set for hard disk)
  3330.     ES:BX -> data buffer
  3331. Return: CF set on error
  3332.         if AH = 11h (corrected ECC error), AL = burst length
  3333.     CF clear if successful
  3334.     AH = status (see #0159 at INT 13/AH=01h)
  3335.     AL = number of sectors transferred
  3336.     ES:BX -> buffer for last sector processed (including one with errors)
  3337. Note:    even though no data is transferred, ES:BX must still be valid because
  3338.       an actual comparison with disk data is performed, not just the CRC
  3339.       check of the standard PC BIOS or INT 4D/AH=04h
  3340. SeeAlso: AH=00h,AH=01h,AH=02h,AH=04h,INT 13/AH=04h
  3341. --------B-4D07-------------------------------
  3342. INT 4D - TI Professional PC - DISK - GET RETRY STATUS OF LAST OPERATION
  3343.     AH = 07h
  3344.     DL = drive (bit 7 set for hard disk)
  3345. Return: CF clear if status unchanged
  3346.     CF set if status changed since last call
  3347.     AH = 00h
  3348.     AL = status of previous operation (see #0159 at INT 13/AH=01h)
  3349. Notes:    this function is nearly the same as INT 13/AH=01h on a standard PC BIOS
  3350.     the TI's BIOS tranparently performs a number of retries; this function
  3351.       returns the error status of a failed operation even if the operation
  3352.       succeeded on a retry
  3353. SeeAlso: AH=00h,AH=01h,INT 13/AH=01h
  3354. --------B-4D08-------------------------------
  3355. INT 4D - TI Professional PC - DISK - SET STANDARD DEVICE INTERFACE TABLE
  3356.     AH = 08h
  3357.     DL = drive number (00h-03h)
  3358.     AL = drive type
  3359.         00h single-sided 48 tpi (40-track, 8 sectors, 512 bytes/sector)
  3360.         01h double-sided 48 tpi (40-track, 8 sectors, 512 bytes/sector)
  3361.         02h single-sided 96 tpi (80-track, 8 sectors, 512 bytes/sector)
  3362.         03h double-sided 96 tpi (80-track, 8 sectors, 512 bytes/sector)
  3363. Return: nothing???
  3364. SeeAlso: AH=00h,AH=09h
  3365. --------B-4D09-------------------------------
  3366. INT 4D - TI Professional PC - DISK - SET DEVICE INTERFACE TABLE ADDRESS
  3367.     AH = 09h
  3368.     DL = drive number (00h-07h)
  3369.     ES:BX -> Device Interface Table (see #2858)
  3370. Return: nothing???
  3371. SeeAlso: AH=00h,AH=08h,AH=0Ah,INT 1E
  3372.  
  3373. Format of TI Professional PC Device Interface Table:
  3374. Offset    Size    Description    (Table 2858)
  3375.  00h    DWORD    -> entry point for disk routine
  3376.  04h    WORD    bytes per sector
  3377.  06h    BYTE    sectors per track
  3378.  07h    BYTE    number of heads
  3379.  08h    BYTE    number of cylinders
  3380.  09h    BYTE    retry count
  3381.  0Ah    BYTE    precompensation start
  3382. SeeAlso: #0929 at INT 1E
  3383. --------B-4D0A-------------------------------
  3384. INT 4D - TI Professional PC - DISK - GET DEVICE INTERFACE TABLE ADDRESS
  3385.     AH = 0Ah
  3386.     DL = drive number (00h-07h)
  3387. Return: AH = status
  3388.     ES:BX -> Device Interface Table (see #2858)
  3389. SeeAlso: AH=00h,AH=08h,AH=09h,INT 1E
  3390. --------B-4D0B-------------------------------
  3391. INT 4D - TI Professional PC - DISK - TURN OFF ALL DRIVES
  3392.     AH = 0Bh
  3393. Return: AH = 00h
  3394. Note:    used for diagnostics or to conserve power
  3395. SeeAlso: AH=00h
  3396. --------h-4E---------------------------------
  3397. INT 4E - Z100 - Slave 8259 - S100 vectored line 6
  3398. SeeAlso: INT 4D"Z100",INT 4F"Z100"
  3399. --------b-4E00-------------------------------
  3400. INT 4E - TI Professional PC - TIME-OF-DAY CLOCK - SET BIOS DATE
  3401.     AH = 00h
  3402.     BX = number of days since January 1, 1980
  3403. Return: nothing
  3404. SeeAlso: AH=01h,AH=02h
  3405. SeeAlso: INT 40"TI Professional",INT 48/AH=00h"TI Professional"
  3406. SeeAlso: INT 4A/AH=00h"TI",INT 4F"TI Professional"
  3407. --------b-4E01-------------------------------
  3408. INT 4E - TI Professional PC - TIME-OF-DAY CLOCK - SET BIOS TIME
  3409.     AH = 01h
  3410.     CH = hours
  3411.     CL = minutes
  3412.     DH = seconds
  3413.     DL = hundredths
  3414. Return: nothing
  3415. Note:    the BIOS does not validate the data passed to this function
  3416. SeeAlso: AH=00h,AH=02h
  3417. --------b-4E02-------------------------------
  3418. INT 4E - TI Professional PC - TIME-OF-DAY CLOCK - GET BIOS DATA AND TIME
  3419.     AH = 02h
  3420. Return: AX = number of days since January 1, 1980
  3421.     CH = hours
  3422.     CL = minutes
  3423.     DH = seconds
  3424.     DL = hundredths
  3425. SeeAlso: AH=00h,AH=01h
  3426. --------h-4F---------------------------------
  3427. INT 4F - Z100 - Slave 8259 - S100 vectored line 7
  3428. SeeAlso: INT 4E"Z100"
  3429. --------b-4F---------------------------------
  3430. INT 4F - TI Professional PC - SYSTEM CONFIGURATION CALL
  3431. Return: AX = system configuration word (see #2859)
  3432.     BX = size of contiguous DOS memory in paragraphs
  3433. SeeAlso: INT 11"BIOS",INT 12"BIOS",INT 40"TI Professional",INT 48/AH=09h
  3434. SeeAlso: INT 49/AH=01h"TI",INT 4B"TI Professional",INT 4D/AH=00h
  3435. SeeAlso: INT 4E"TI Professional"
  3436.  
  3437. Bitfields for TI Professional PC system configuration:
  3438. Bit(s)    Description    (Table 2859)
  3439.  0    floppy drive 0 (A:, internal) installed
  3440.  1    floppy drive 1 (B:, internal) installed
  3441.  2    floppy drive 2 (C:, external) installed
  3442.  3    floppy drive 3 (D:, external) installed
  3443.  4    drive A: is 96tpi (80 tracks)
  3444.  5    drive A: is double-sided
  3445.  6    60 Hz power instead of 50 Hz
  3446.  7    hard disk (E: or E:/F:) installed
  3447.  8    serial port 1 installed
  3448.  9    serial port 2 installed
  3449.  10    serial port 3 installed
  3450.  11    serial port 4 installed
  3451.  14-12    installed graphics RAM
  3452.     000 none (text-only system)
  3453.     001 bank A only (graphics limited to 2 of 8 colors)
  3454.     111 banks A/B/C (graphics supports 8 of 8 colors)
  3455.  15    clock/analog board installed
  3456. --------d-4F8100-----------------------------
  3457. INT 4F - Common Access Method SCSI interface rev 2.3 - SEND CCB TO XPT/SIM
  3458.     AX = 8100h
  3459.     ES:BX -> CAM Control Block (CCB) (see #2861)
  3460. Return: AH = status
  3461.         00h successful
  3462.         01h invalid CCB address (0000h:0000h)
  3463. Note:    the SCSI Interface Module (SIM) may complete the requested function
  3464.       and invoke the completion callback function before this call returns
  3465. SeeAlso: AX=8200h,INT 2F/AX=7F01h,INT 4B"Common Access Method"
  3466.  
  3467. (Table 2860)
  3468. Values for CAM function code:
  3469.  00h    NOP
  3470.  01h    execute SCSI I/O
  3471.  02h    get device type
  3472.  03h    path inquiry
  3473.  04h    release SIM queue
  3474.  05h    set async callback
  3475.  06h    set device type
  3476.  07h-0Fh reserved
  3477.  10h    abort SCSI command
  3478.  11h    reset SCSI bus
  3479.  12h    reset SCSI device
  3480.  13h    terminate I/O process
  3481.  14h-1Fh reserved
  3482.  20h    engine inquiry
  3483.  21h    execute engine request
  3484.  22h-2Fh reserved
  3485.  30h    enable logical unit number
  3486.  31h    execute target I/O
  3487.  32h-7Fh reserved
  3488.  80h-FFh vendor-specific functions
  3489.  
  3490. Format of CAM Control Block:
  3491. Offset    Size    Description    (Table 2861)
  3492.  00h    DWORD    physical address of this CCB
  3493.  04h    WORD    CAM control block length
  3494.  06h    BYTE    function code (see #2860)
  3495.  07h    BYTE    CAM status (see #2864)
  3496.  08h    BYTE    SCSI status
  3497.  09h    BYTE    path ID (FFh = XPT)
  3498.  0Ah    BYTE    target ID
  3499.  0Bh    BYTE    logical unit number
  3500.  0Ch    WORD    CAM flags (see #2862)
  3501.  0Eh    BYTE    CAM address flags (see #2863)
  3502.  0Fh    BYTE    target-mode flags (see #2865)
  3503. ---function 02h---
  3504.  10h    DWORD    pointer to 36-byte buffer for inquiry data or 0000h:0000h
  3505.  14h    BYTE    peripheral device type of target logical unit number
  3506. ---function 03h---
  3507.  10h    BYTE    version number (00h-07h prior to rev 1.7, 08h = rev 1.7,
  3508.         09h-FFh = rev no, i.e. 23h = rev 2.3)
  3509.  11h    BYTE    SCSI capabilities (see #2866)
  3510.  12h    BYTE    target mode support
  3511.         bit 7: processor mode
  3512.         bit 6: phase-cognizant mode
  3513.         bit 5-0: reserved
  3514.  13h    BYTE    miscellaneous flags
  3515.         bit 7: scanned high to low instead of low to high
  3516.         bit 6: removables not included in scan
  3517.         bit 5: inquiry data not kept by XPT
  3518.         bits 4-0: reserved
  3519.  14h    WORD    engine count
  3520.  16h 14 BYTEs    vendor-specific data
  3521.  24h    DWORD    size of private data area
  3522.  28h    DWORD    asynchronous event capabilities (see #2867)
  3523.  2Ch    BYTE    highest path ID assigned
  3524.  2Dh    BYTE    SCSI device ID of initiator
  3525.  2Eh  2 BYTEs    reserved
  3526.  30h 16 BYTEs    SIM vendor ID
  3527.  40h 16 BYTEs    HBA (host bus adaptor) vendor ID
  3528.  50h  4 BYTEs    operating-system dependant usage
  3529. ---functions 00h,04h,11h,12h---
  3530.  no additional fields
  3531. ---function 05h---
  3532.  10h    DWORD    asynchronous event enables (refer to function 03h above)
  3533.  14h    DWORD    pointer to asynchronous callback routine (see #2873)
  3534.  18h    DWORD    pointer to peripheral driver buffer
  3535.  1Ch    BYTE    size of peripheral buffer
  3536. ---function 06h---
  3537.  10h    BYTE    peripheral device type of target
  3538. ---functions 10h,13h---
  3539.  10h    DWORD    pointer to CCB to be aborted
  3540. ---function 20h---
  3541.  10h    WORD    engine number
  3542.  12h    BYTE    engine type
  3543.         00h buffer memory
  3544.         01h lossless compression
  3545.         02h lossy compression
  3546.         03h encryption
  3547.  13h    BYTE    engine algorithm ID
  3548.         00h vendor-unique
  3549.         01h LZ1 variation 1 (STAC)
  3550.         02h LZ2 variation 1 (HP DCZL)
  3551.         03h LZ2 variation 2 (Infochip)
  3552.  14h    DWORD    engine memory size
  3553. ---function 21h---
  3554.  10h    DWORD    pointer to peripheral driver
  3555.  14h  4 BYTEs    reserved
  3556.  18h    DWORD    OS-dependent request-mapping info
  3557.  1Ch    DWORD    address of completion callback routine
  3558.  20h    DWORD    pointer to scatter/gather list or data buffer
  3559.  24h    DWORD    length of data transfer
  3560.  28h    DWORD    pointer to engine buffer data
  3561.  2Ch  2 BYTEs    reserved
  3562.  2Eh    WORD    number of scatter/gather entries
  3563.  30h    DWORD    maximum destination data length
  3564.  34h    DWORD    length of destination data
  3565.  38h    DWORD    source residual length
  3566.  3Ch 12 BYTEs    reserved
  3567.  48h    DWORD    OS-dependent timeout value
  3568.  4Ch  4 BYTEs    reserved
  3569.  50h    WORD    engine number
  3570.  52h    WORD    vendor-unique flags
  3571.  54h  4 BYTEs    reserved
  3572.  58h  N BYTEs    private data area for SIM
  3573. ---function 30h---
  3574.  10h    WORD    group 6 vendor-unique CDB length
  3575.  12h    WORD    group 7 vendor-unique CDB length
  3576.  14h    DWORD    pointer to target CCB list
  3577.  18h    WORD    number of target CCBs
  3578. ---other functions---
  3579.  10h    DWORD    pointer to peripheral driver
  3580.  14h    DWORD    pointer to next CCB
  3581.  18h    DWORD    OS-dependent request mapping information
  3582.  1Ch    DWORD    address of completion callback routine (see #2872)
  3583.  20h    DWORD    pointer to scatter/gather list or data buffer
  3584.  24h    DWORD    length of data transfer
  3585.  28h    DWORD    pointer to sense info buffer
  3586.  2Ch    BYTE    length of sense info buffer
  3587.  2Dh    BYTE    CDB length
  3588.  2Eh    WORD    number of scatter/gather entries
  3589.         scatter/gather list is array of 2N DWORDs, each pair specifying
  3590.           the address and length of a data block
  3591.  30h  4 BYTEs    vendor-specific data
  3592.  34h    BYTE    (ret) SCSI status
  3593.  35h    BYTE    (ret) auto-sense residual length
  3594.  36h  2 BYTEs    reserved
  3595.  38h    DWORD    (ret) residual length
  3596.  40h 12 BYTEs    Command Descriptor Block (CDB) (see #2868,#2869,#2870)
  3597.  44h    DWORD    OS-dependent timeout value
  3598.  48h    DWORD    pointer to message buffer
  3599.  4Ch    WORD    length of message buffer
  3600.  4Eh    WORD    vendor-unique flags
  3601.  50h    BYTE    tag queue action
  3602.  51h  3 BYTEs    reserved
  3603.  54h  N BYTEs    private data area for SIM
  3604.  
  3605. Bitfields for CAM flags:
  3606. Bit(s)    Description    (Table 2862)
  3607.  0    CDB is a pointer
  3608.  1    tagged queue action enable
  3609.  2    linked CDB
  3610.  3    disable callback on completion
  3611.  4    scatter/gather
  3612.  5    disable autosense
  3613.  7-6    direction (00 reserved, 01 in, 10 out, 11 no data transfer)
  3614.  9-8    reserved
  3615.  10    engine synchronize
  3616.  11    SIM queue freeze
  3617.  12    SIM queue priority
  3618.     1 head insertion
  3619.     0 tail insertion (normal)
  3620.  13    disable synchronous transfers    \ mutually
  3621.  14    initiate synchronous transfers    / exclusive
  3622.  15    disable disconnect
  3623.  
  3624. Bitfields for CAM address flags:
  3625. Bit(s)    Description    (Table 2863)
  3626.  7    SG list/data (0 = host, 1 = engine)
  3627.  6    CDB pointer    (6-1: 0=virtual addr, 1=phys addr)
  3628.  5    SG list/data
  3629.  4    sense buffer
  3630.  3    message buffer
  3631.  2    next CCB
  3632.  1    callback on completion
  3633.  0    reserved
  3634.  
  3635. (Table 2864)
  3636. Values for CAM status:
  3637.  00h    request in progress
  3638.  01h    request successful
  3639.  02h    host aborted request
  3640.  03h    unable to abort request
  3641.  04h    request completed with error
  3642.  05h    CAM is busy
  3643.  06h    invalid request
  3644.  07h    invalid path ID
  3645.  08h    no such SCSI device
  3646.  09h    unable to terminate I/O process
  3647.  0Ah    timeout on target selection
  3648.  0Bh    timeout on command
  3649.  0Dh    receive message rejection
  3650.  0Eh    sent/received SCSI bus reset
  3651.  0Fh    detected uncorrectable parity error
  3652.  10h    Autosense request failed
  3653.  11h    no HBA detected
  3654.  12h    data over/underrun
  3655.  13h    bus freed unexpectedly
  3656.  14h    target bus phase sequence failure
  3657.  15h    CCB too small
  3658.  16h    requested capability not available
  3659.  17h    sent bus device reset
  3660.  18h    terminate I/O process
  3661.  38h    invalid LUN
  3662.  39h    invalid target ID
  3663.  3Ah    unimplemented function
  3664.  3Bh    nexus not established
  3665.  3Ch    invalid initiator ID
  3666.  3Dh    received SCSI Command Descriptor Block
  3667.  3Eh    LUN already enabled
  3668.  3Fh    SCSI bus busy
  3669. Note:    bit 6 set to indicate frozen SIM queue
  3670.     bit 7 set to indicate valid autosense
  3671.  
  3672. Bitfields for CAM target-mode flags:
  3673. Bit(s)    Description    (Table 2865)
  3674.  7    data buffer valid
  3675.  6    status valid
  3676.  5    message buffer valid
  3677.  4    reserved
  3678.  3    phase-cognizant mode
  3679.  2    target CCB available
  3680.  1    disable autodisconnect
  3681.  0    disable autosave/restore
  3682.  
  3683. Bitfields for SCSI capabilities:
  3684. Bit(s)    Description    (Table 2866)
  3685.  7    modify data pointers
  3686.  6    wide bus (32 bits)
  3687.  5    wide bus (16 bits)
  3688.  4    synchronous transfers
  3689.  3    linked commands
  3690.  2    reserved
  3691.  1    tagged queueing
  3692.  0    soft reset
  3693.  
  3694. Bitfields for CAM asynchronous event capabilities:
  3695. Bit(s)    Description    (Table 2867)
  3696.  31-24    vendor-specific
  3697.  23-8    reserved
  3698.  7    new devices found during rescan
  3699.  6    SIM module deregistered
  3700.  5    SIM module registered
  3701.  4    sent bus device reset to target
  3702.  3    SCSI AEN
  3703.  2    reserved
  3704.  1    unsolicited reselection
  3705.  0    unsolicited SCSI bus reset
  3706.  
  3707. Format of Six-Byte SCSI Command Descriptor Block (CDB):
  3708. Offset    Size    Description    (Table 2868)
  3709.  00h    BYTE    operation code (see #2871)
  3710.  01h    BYTE    logical unit number (bits 7-5), SCSI-1/SCSI-2
  3711.         MSB of logical block address (bits 4-0)
  3712.  02h    WORD    logical block address (low word)
  3713.  04h    BYTE    transfer length
  3714.  05h    BYTE    control byte
  3715. SeeAlso: #2869,#2870
  3716.  
  3717. Format of Ten-Byte SCSI Command Descriptor Block (CDB):
  3718. Offset    Size    Description    (Table 2869)
  3719.  00h    BYTE    operation code (see #2871)
  3720.  01h    BYTE    logical unit number (bits 7-5), SCSI-1/SCSI-2
  3721.         reserved in SCSI-3
  3722.  02h    DWORD    logical block address (low word)
  3723.  06h    BYTE    reserved
  3724.  07h    WORD    transfer length
  3725.  09h    BYTE    control byte
  3726. SeeAlso: #2868,#2870
  3727.  
  3728. Format of Twelve-Byte SCSI Command Descriptor Block (CDB):
  3729. Offset    Size    Description    (Table 2870)
  3730.  00h    BYTE    operation code (see #2871)
  3731.  01h    BYTE    logical unit number (bits 7-5), SCSI-1/SCSI-2
  3732.         reserved in SCSI-3
  3733.  02h    DWORD    logical block address (low word)
  3734.  06h    DWORD    transfer length
  3735.  0Ah    BYTE    reserved
  3736.  0Bh    BYTE    control byte
  3737. SeeAlso: #2868,#2869
  3738.  
  3739. (Table 2871)
  3740. Values for SCSI CDB operation code for direct-access devices:
  3741.  00h    Test Unit Ready
  3742.  01h    Rezero Unit
  3743.  03h    Request Sense
  3744.  04h    Format Unit
  3745.  07h    Reassign Blocks
  3746.  08h    Read (6-byte CDB)
  3747.  0Ah    Write (6-byte CDB)
  3748.  0Bh    Seek (6-byte CDB)
  3749.  12h    Inquiry
  3750.  15h    Mode Select (6-byte CDB)
  3751.  16h    Reserve
  3752.  17h    Release
  3753.  18h    Copy
  3754.  1Ah    Mode Sense (6-byte CDB)
  3755.  1Bh    Start/Stop Unit
  3756.  1Ch    Receive Diagnostic Results
  3757.  1Dh    Send Diagnostic
  3758.  1Eh    Prevent/Allow Medium Removal
  3759.  25h    Read Capacity
  3760.  28h    Read (10-byte CDB)
  3761.  2Ah    Write (10-byte CDB)
  3762.  2Bh    Seek (10-byte CDB)
  3763.  2Eh    Write and Verify
  3764.  2Fh    Verify
  3765.  30h    Search Data High
  3766.  31h    Search Data Equal
  3767.  32h    Search Data Low
  3768.  33h    Set Limits
  3769.  34h    Prefetch
  3770.  35h    Synchronize Cache
  3771.  36h    Lock/Unlock Cache
  3772.  37h    Read Defect Data
  3773.  39h    Compare
  3774.  3Ah    Copy and Verify
  3775.  3Bh    Write Buffer
  3776.  3Ch    Read Buffer
  3777.  3Eh    Read Long
  3778.  3Fh    Write Long
  3779.  40h    Change Definition
  3780.  41h    Write Same
  3781.  4Ch    Log Select
  3782.  4Dh    Log Sense
  3783.  55h    Mode Select (10-byte CDB)
  3784.  5Ah    Mode Sense (10-byte CDB)
  3785. SeeAlso: #2868,#2869,#2870
  3786.  
  3787. (Table 2872)
  3788. Values completion callback function is called with:
  3789.     interrupts disabled
  3790.     ES:BX -> completed CCB
  3791.  
  3792. (Table 2873)
  3793. Values asynchronous callback function is called with:
  3794.     AH = opcode
  3795.     AL = path ID generating callback
  3796.     DH = target ID causing event
  3797.     DL = LUN causing event
  3798.     CX = data byte count (if applicable)
  3799.     ES:BX -> data buffer (if applicable)
  3800. Return: all registers preserved
  3801. --------d-4F8200CX8765-----------------------
  3802. INT 4F - Common Access Method SCSI interface rev 2.3 - INSTALLATION CHECK
  3803.     AX = 8200h
  3804.     CX = 8765h
  3805.     DX = CBA9h
  3806. Return: AH = 00h if installed
  3807.         CX = 9ABCh
  3808.         DX = 5678h
  3809.         ES:DI -> "SCSI_CAM"
  3810. SeeAlso: AX=8100h,INT 4B"Common Access Method"
  3811. --------N-50---------------------------------
  3812. INT 50 - TIL Xpert AIM (X.25)
  3813.     AH = function
  3814. --------H-50---------------------------------
  3815. INT 50 - IRQ0 relocated by DESQview
  3816. Range:    INT 50 to INT F8, selected automatically
  3817. Notes:    this is the default location for older versions; DESQview v2.26+
  3818.       searches for unused ranges of interrupts and uses the lowest
  3819.       available range in its list for relocating these IRQs and the next
  3820.       lowest for relocating IRQ8-IRQ15
  3821.     a range of eight interrupts starting at a multiple of 8 is considered
  3822.       available if all vectors are identical and it has not been excluded
  3823.       with an /XB:nn commandline switch
  3824.     the list of ranges for v2.26 is 50h,58h,68h,78h,F8h (if < two of these
  3825.       are available, F8h and then 50h are used anyway)
  3826.     the list of ranges for v2.31+ is 68h,78h,88h-B8h,F8h (if < two of these
  3827.       are available, F8h and then F0h are used anyway)
  3828. SeeAlso: INT 08"IRQ0",INT 51"DESQview",INT 54"DESQview",INT 58"DESQview"
  3829. SeeAlso: INT D8"Screen Thief"
  3830. --------H-50---------------------------------
  3831. INT 50 - IRQ0 relocated by IBM 3278 emulation control program
  3832. SeeAlso: INT 51"IBM 3278"
  3833. --------H-50---------------------------------
  3834. INT 50 - IRQ0 relocated by OS/2 v1.x
  3835. SeeAlso: INT 51"OS/2"
  3836. ----------50---------------------------------
  3837. INT 50 - TI Professional PC - FATAL SOFTWARE ERROR TRAP
  3838. Desc:    the default handler generates a System Error message and halts the
  3839.       computer such that only Ctrl-Alt-Del can restart operation
  3840. Note:    documented as "for system use only"; intended for multi-tasking
  3841.       software
  3842. SeeAlso: INT 40"TI Professional",INT 4F"TI Professional"
  3843. SeeAlso: INT 51"TI Professional",INT 53"TI Professional"
  3844. --------V-500000-----------------------------
  3845. INT 50 - Vanderaart TEXT WINDOWS, PC Thuis Shell - OPEN TEXT WINDOW
  3846.     AX = 0000h
  3847.     ES:BX -> name string or ES:0000h if none
  3848.     CH,CL = row,column of upper left corner
  3849.     DH,DL = row,column of lower right corner
  3850. Return: AX = window handle or
  3851.         0000h if not installed
  3852.         FFFFh on error
  3853. SeeAlso: AX=0001h,AX=0002h"TEXT WINDOWS"
  3854. --------V-500001-----------------------------
  3855. INT 50 - Vanderaart TEXT WINDOWS, PC Thuis Shell - CLOSE TEXT WINDOW
  3856.     AX = 0001h
  3857.     DI = window handle
  3858. SeeAlso: AX=0000h
  3859. --------V-500002-----------------------------
  3860. INT 50 - Vanderaart TEXT WINDOWS - PUT CHARACTER IN WINDOW
  3861.     AX = 0002h
  3862.     BL = character
  3863.     BH = attribute
  3864.     DL = column
  3865.     DH = row
  3866.     DI = window handle
  3867. Return: AX = status
  3868.         0000h if successful
  3869.         FFFFh if outside window
  3870. SeeAlso: AX=0000h
  3871. --------l-500002-----------------------------
  3872. INT 50 - PC Thuis Organizer Shell - PLOT TEXT
  3873.     AX = 0002h
  3874.     ES:BX -> text string
  3875.     DH,DL = row,column of upper left corner
  3876.     DI = window handle
  3877. Return: AX = status
  3878.         0000h successful (text fits in window)
  3879.         FFFFh error
  3880. Program: The PC Thuis Organizer Shell was written by John Vanderaart and
  3881.       published in the June/July 1990 issue of PC Thuis Power magazine
  3882. --------V-500003-----------------------------
  3883. INT 50 - Vanderaart TEXT WINDOWS - OUTPUT LINE TO WINDOW
  3884.     AX = 0003h
  3885.     ES:BX -> text string
  3886.     CX = string length (0000h if ASCIZ string)
  3887.     DL = position (FFh centered, else flush left)
  3888.     DH = starting row
  3889.     DI = window handle
  3890. Return: AX = status
  3891.         0000h successful
  3892.         FFFFh did not fit in window
  3893. --------l-500003-----------------------------
  3894. INT 50 - PC Thuis Organizer Shell - WRITE FILE
  3895.     AX = 0003h
  3896.     ES:BX -> data to be written
  3897.     CX = number of bytes to write
  3898.     DS:SI -> filename
  3899. Return: AX = status
  3900.         0000h successful
  3901.         FFFFh error
  3902. SeeAlso: AX=0004h"Shell"
  3903. --------V-500004-----------------------------
  3904. INT 50 - Vanderaart TEXT WINDOWS - GET KEY
  3905.     AX = 0004h
  3906.     CH = type
  3907.         00h any key
  3908.         01h 'J' or 'N' (Dutch for yes/no)
  3909. Return: AX = key
  3910. SeeAlso: INT 16/AH=00h
  3911. --------l-500004-----------------------------
  3912. INT 50 - PC Thuis Organizer Shell - READ FILE
  3913.     AX = 0004h
  3914.     ES:BX -> buffer for data
  3915.     CX = number of bytes to read or 0000h for entire file
  3916.     DL = file type
  3917.         01h setting shell
  3918.         02h setting sterm
  3919.         03h INT21 file
  3920.     DS:SI -> filename
  3921. Return: AX = status
  3922.         0000h successful
  3923.         FFFFh error
  3924. Note:    file type numbers are maintained by John Vanderaart; if a new file type
  3925.       is needed, a type number should be requested from him through the
  3926.       magazine:
  3927.         PC Thuis BV
  3928.         Spaarne 55
  3929.         2011 CE HAARLEM
  3930.         The Netherlands
  3931. SeeAlso: AX=0003h"Shell"
  3932. --------V-500005-----------------------------
  3933. INT 50 - Vanderaart TEXT WINDOWS - CHANGE ATTRIBUTE
  3934.     AX = 0005h
  3935.     BL = new attribute
  3936.     CH,CL = row,column of upper left corner
  3937.     DH,DL = row,column of lower right corner
  3938.     DI = window handle
  3939. --------l-500005-----------------------------
  3940. INT 50 - PC Thuis Organizer Shell - PROMPT YES/NO
  3941.     AX = 0005h
  3942.     ES:BX -> prompt string (ES:0000h if no prompt)
  3943. Return: AX = key pressed
  3944.         0000h "J" (Dutch "Ja" = "Yes")
  3945.         FFFFh "N" (Dutch "Nee" = "No")
  3946. Program: The PC Thuis Organizer Shell was written by John Vanderaart and
  3947.       published in the June/July 1990 issue of PC Thuis Power magazine
  3948. SeeAlso: AX=0008h"PC Thuis"
  3949. --------V-500006-----------------------------
  3950. INT 50 - Vanderaart TEXT WINDOWS - EDIT LINE IN WINDOW
  3951.     AX = 0006h
  3952.     ES:BX -> text string
  3953.     CH = type of input (see #2874)
  3954.     DH,DL = row,column of upper left corner
  3955.     DI = window handle
  3956. Return: AX = key which terminated entry
  3957.         0000h Enter
  3958.         0001h Esc
  3959.         0002h Down arrow
  3960.         0003h Up arrow
  3961.         0004h F10
  3962.  
  3963. (Table 2874)
  3964. Values for type of input to Vanderaart Text Windows:
  3965.  00h    everything
  3966.  01h    uppercase only
  3967.  02h    positive numbers
  3968.  03h    Dutch postal code ("9999 AA")
  3969.  04h    'J' or 'N' (Dutch yes/no)
  3970.  05h    telephone or FAX number
  3971.  06h    positive or negative number
  3972.  07h    date (dd/mm/yy)
  3973.  08h    money
  3974.  09h    '1' through '8'
  3975.  0Ah    '1' through '4'
  3976.  0Bh    uppercase filenames
  3977. --------l-500006-----------------------------
  3978. INT 50 - PC Thuis Organizer Shell - ALERT USER
  3979.     AX = 0006h
  3980.     ES:BX -> string
  3981. --------l-500007-----------------------------
  3982. INT 50 - PC Thuis Organizer Shell - DO LINE
  3983.     AX = 0007h
  3984.     ES:BX -> text string
  3985.     CX = string length in bytes (0000h if NUL-terminated)
  3986.     DL = FFh to center string, else flush left
  3987.     DH = upper left row
  3988.     DI = window handle
  3989. Return: AX = status
  3990.         0000h successful
  3991.         FFFFh error
  3992. Program: The PC Thuis Organizer Shell was written by John Vanderaart and
  3993.       published in the June/July 1990 issue of PC Thuis Power magazine
  3994. SeeAlso: AX=0008h
  3995. --------l-500008-----------------------------
  3996. INT 50 - PC Thuis Organizer Shell - DO MENU
  3997.     AX = 0008h
  3998.     ES:BX -> menu structure
  3999. Return: AL = index 1 or FFh if not selected
  4000.     AH = index 2 or FFh if not selected
  4001.     BL = index 3 or FFh if not selected
  4002.     BH = index 4 or FFh if not selected
  4003. SeeAlso: AX=0005h"PC Thuis",AX=0007h,AX=000Ch
  4004. --------l-500009-----------------------------
  4005. INT 50 - PC Thuis Organizer Shell - MESSAGE ON
  4006.     AX = 0009h
  4007.     ES:BX -> message string
  4008. SeeAlso: AX=000Ah
  4009. --------l-50000A-----------------------------
  4010. INT 50 - PC Thuis Organizer Shell - MESSAGE OFF
  4011.     AX = 000Ah
  4012. SeeAlso: AX=0009h
  4013. --------l-50000B-----------------------------
  4014. INT 50 - PC Thuis Organizer Shell - CHANGE ATTRIBUTE
  4015.     AX = 000Bh
  4016.     BL = new attribute
  4017.     CH,CL = row,column of upper left corner
  4018.     DH,DL = row,column of lower right corner
  4019.     DI = window handle
  4020. --------l-50000C-----------------------------
  4021. INT 50 - PC Thuis Organizer Shell - DO REQUEST
  4022.     AX = 000Ch
  4023.     ES:BX -> request structure
  4024. Return: AX = status
  4025.         0000h confirmed
  4026.         FFFFh denied
  4027. SeeAlso: AX=0008h
  4028. --------l-50000D-----------------------------
  4029. INT 50 - PC Thuis Organizer Shell - EDIT LINE
  4030.     AX = 000Dh
  4031.     ES:BX -> text string
  4032.     CL = length
  4033.     CH = input type (see #2875)
  4034.     DH,DL = row,column of upper left corner
  4035.     DI = window handle
  4036. Return: AX = result code
  4037. Program: The PC Thuis Organizer Shell was written by John Vanderaart and
  4038.       published in the June/July 1990 issue of PC Thuis Power magazine
  4039.  
  4040. Bitfields for input type:
  4041. Bit(s)    Description    (Table 2875)
  4042.  0    force uppercase
  4043.  1    integer
  4044.  2    no spaces allowed
  4045.  3    no cursor keys
  4046. --------l-50000E-----------------------------
  4047. INT 50 - PC Thuis Organizer Shell - PLOT CHARACTER
  4048.     AX = 000Eh
  4049.     BL = character
  4050.     BH = attribute
  4051.     DH,DL = row,column at which to plot
  4052.     DI = window handle
  4053. Return: AX = status
  4054.         0000h successful
  4055.         FFFFh errror
  4056. --------l-50000F-----------------------------
  4057. INT 50 - PC Thuis Organizer Shell - EMPTY WINDOW
  4058.     AX = 000Fh
  4059.     BL = character
  4060.     BH = attribute
  4061.     DI = window handle
  4062. --------l-500010-----------------------------
  4063. INT 50 - PC Thuis Organizer Shell - TRACE MENU
  4064.     AX = 0010h
  4065.     ES:BX -> first menu structure
  4066.     CL = hotkey to look up
  4067. Return: AL = index 1 or FFh if not selected
  4068.     AH = index 2 or FFh if not selected
  4069.     BL = index 3 or FFh if not selected
  4070.     BH = index 4 or FFh if not selected
  4071. Index:    hotkeys;PC Thuis Organizer Shell
  4072. --------l-500011-----------------------------
  4073. INT 50 - PC Thuis Organizer Shell - MOVE MEMORY
  4074.     AX = 0011h
  4075.     DS:SI -> source
  4076.     ES:DI -> destination
  4077.     CX = number of bytes to move (0000h = until NUL string terminator???)
  4078. SeeAlso: AX=0012h
  4079. --------l-500012-----------------------------
  4080. INT 50 - PC Thuis Organizer Shell - COMPARE MEMORY
  4081.     AX = 0012h
  4082.     DS:SI -> source
  4083.     ES:DI -> destination
  4084.     CX = number of bytes to compare (0000h=until NUL string terminator???)
  4085. Return: AX = status
  4086.         0000h same
  4087.         FFFFh different
  4088. SeeAlso: AX=0011h
  4089. --------l-500013-----------------------------
  4090. INT 50 - PC Thuis Organizer Shell - GET KEY
  4091.     AX = 0013h
  4092.     CH = type flags
  4093.         bit 0: force uppercase
  4094.         bit 1: integer
  4095.         bit 2: no spaces
  4096. Return: AX = keystroke
  4097. --------l-500014-----------------------------
  4098. INT 50 - PC Thuis Organizer Shell - SCROLL WINDOW
  4099.     AX = 0014h
  4100.     BL = direction
  4101.         06h up
  4102.         07h down
  4103.     BH = attribute
  4104.     DI = window handle
  4105. SeeAlso: INT 10/AH=06h,INT 10/AH=07h
  4106. --------l-500015-----------------------------
  4107. INT 50 - PC Thuis Organizer Shell - GET MEMORY HANDLE
  4108.     AX = 0015h
  4109.     BL = handle size
  4110.         00h 65536 bytes (64K)
  4111.         01h 65535 bytes (64K-1)
  4112.         02h 32768 bytes (32K)
  4113.         03h 32767 bytes (32K-1)
  4114. Return: AX = segment
  4115. Program: The PC Thuis Organizer Shell was written by John Vanderaart and
  4116.       published in the June/July 1990 issue of PC Thuis Power magazine
  4117. SeeAlso: INT 21/AH=48h
  4118. --------H-51---------------------------------
  4119. INT 51 - IRQ1 relocated by DESQview
  4120. Range:    INT 51 to INT F9, selected automatically
  4121. Note:    this is the default location for older versions; see INT 50"DESQview"
  4122.       for details of interrupt relocation
  4123. SeeAlso: INT 50"DESQview",INT 54"DESQview",INT 58"DESQview"
  4124. --------H-51---------------------------------
  4125. INT 51 - IRQ1 relocated by IBM 3278 emulation control program
  4126. SeeAlso: INT 50"IBM 3278",INT 54"IBM 3278"
  4127. --------H-51---------------------------------
  4128. INT 51 - IRQ1 relocated by OS/2 v1.x
  4129. SeeAlso: INT 50"OS/2",INT 54"OS/2"
  4130. ----------51---------------------------------
  4131. INT 51 - TI Professional PC - RESTART TIMING EVENT
  4132.     AX = timer count in 25ms intervals
  4133.     DS:DI -> timing-event table (see #2876)
  4134. Note:    documented as "for system use only"; intended for multi-tasking
  4135.       software
  4136. SeeAlso: INT 50"TI Professional",INT 52"TI Professional"
  4137.  
  4138. Format of TI Professional PC timing event table:
  4139. Offset    Size    Description    (Table 2876)
  4140.  00h    WORD    offset of next event table entry
  4141.  02h    BYTE    normally unused (FFh)
  4142.  03h    BYTE    flags:
  4143.         bit 7 set if timing event active
  4144.         bits 6-0 not used by BIOS (0), but could be used by option ROMs
  4145.  04h    WORD    timeout count (decremented every 25ms when active)
  4146.  06h    WORD    offset of event handler (in segment F400h) to call on event
  4147.           timeout; the F400h segment allows addressing both system ROMs
  4148.           and the first 16K of memory (due to the 1M memory wraparound)
  4149. --------b-51---------------------------------
  4150. INT 51 - Tandy 2000 - KEYBOARD SERVICES
  4151. Note:    this interrupt is identical to INT 16 on Tandy 2000
  4152. SeeAlso: INT 16/AH=00h,INT 16/AH=01h,INT 16/AH=02h,INT 16/AH=04h"Tandy"
  4153. SeeAlso: INT 16/AH=04h,INT 4A"Tandy 2000",INT 4C"Tandy 2000",INT 52"Tandy 2000"
  4154. --------H-52---------------------------------
  4155. INT 52 - IRQ2 relocated by DESQview
  4156. Range:    INT 52 to INT FA, selected automatically
  4157. Note:    this is the default location for older versions; see INT 50"DESQview"
  4158.       for details of interrupt relocation
  4159. SeeAlso: INT 50"DESQview",INT 54"DESQview",INT 58"DESQview"
  4160. --------H-52---------------------------------
  4161. INT 52 - IRQ2 relocated by IBM 3278 emulation control program, OS/2 v1.x
  4162. SeeAlso: INT 50"IBM 3278",INT 51"OS/2"
  4163. ----------52---------------------------------
  4164. INT 52 - TI Professional PC - CANCEL TIMING EVENT
  4165.     DS:DI -> timing-event table (see #2876)
  4166. Note:    documented as "for system use only"; intended for multi-tasking
  4167.       software
  4168. SeeAlso: INT 51"TI Professional",INT 53"TI Professional"
  4169. --------b-52---------------------------------
  4170. INT 52 - Tandy 2000 - VIDEO SERVICES
  4171. Note:    this interrupt is identical to INT 10
  4172. SeeAlso: INT 10/AH=00h,INT 10/AH=01h,INT 10/AH=08h,INT 10/AH=0Eh
  4173. SeeAlso: INT 4A"Tandy 2000",INT 51"Tandy 2000",INT 53"Tandy 2000"
  4174. --------H-53---------------------------------
  4175. INT 53 - IRQ3 relocated by DESQview
  4176. Range:    INT 53 to INT FB, selected automatically
  4177. Note:    this is the default location for older versions; see INT 50"DESQview"
  4178.       for details of interrupt relocation
  4179. SeeAlso: INT 50"DESQview",INT 54"DESQview",INT 58"DESQview"
  4180. --------H-53---------------------------------
  4181. INT 53 - IRQ3 relocated by IBM 3278 emulation control program, OS/2 v1.x
  4182. SeeAlso: INT 50"IBM 3278",INT 51"OS/2"
  4183. ----------53---------------------------------
  4184. INT 53 - TI Professional PC - SVC INTERFACE
  4185. Notes:    documented as "for system use only"; intended for multi-tasking
  4186.       software
  4187.     this interrupt is not used by the BIOS; the default handler generates
  4188.       a system error trap (see INT 51"TI Professional")
  4189. SeeAlso: INT 50"TI Professional",INT 54"TI Professional"
  4190. --------b-53---------------------------------
  4191. INT 53 - Tandy 2000 - SERIAL COMMUNICATIONS
  4192. Note:    this interrupt is identical to INT 14 on Tandy 2000
  4193. SeeAlso: INT 14/AH=00h"SERIAL",INT 14/AH=01h,INT 14/AH=02h,INT 14/AH=03h
  4194. SeeAlso: INT 14/AH=04h"Tandy 2000",INT 52"Tandy 2000",INT 54"Tandy 2000"
  4195. --------N-53---------------------------------
  4196. INT 53 - WEB??? - API
  4197.     BX = function
  4198.         0000h ???
  4199.         AX = ???
  4200.         Return: AX = ???
  4201.         0004h ???
  4202.         0009h ???
  4203.         0015h
  4204.         AX = ???
  4205.         DX = ???
  4206.         0017h
  4207. Return: ???
  4208. Notes:    the installation check consists of looking for the signature "WEBCO"
  4209.       immediately prior to the interrupt handler
  4210.     the above calls are made by Show Partner F/X v3.6 (see INT 10/AH=53h)
  4211. Index:    installation check;unknown|installation check;WEBCO
  4212. --------H-54---------------------------------
  4213. INT 54 - IRQ4 relocated by DESQview
  4214. Range:    INT 54 to INT FC, selected automatically
  4215. Note:    this is the default location for older versions; see INT 50"DESQview"
  4216.       for details of interrupt relocation
  4217. SeeAlso: INT 50"DESQview",INT 58"DESQview"
  4218. --------H-54---------------------------------
  4219. INT 54 - IRQ4 relocated by IBM 3278 emulation control program, OS/2 v1.x
  4220. SeeAlso: INT 51"IBM 3278",INT 51"OS/2"
  4221. ----------54---------------------------------
  4222. INT 54 - TI Professional PC - ACTIVATE TASK SUBROUTINE
  4223. Notes:    documented as "for system use only"; intended for multi-tasking
  4224.       software
  4225.     this interrupt is not used by the BIOS; the default handler generates
  4226.       a system error trap (see INT 51"TI Professional")
  4227. SeeAlso: INT 50"TI Professional",INT 53"TI Professional"
  4228. --------b-54---------------------------------
  4229. INT 54 - Tandy 2000 - LINE PRINTER
  4230. Note:    this interrupt is identical to INT 17 on Tandy 2000
  4231. SeeAlso: INT 17/AH=00h,INT 17/AH=01h,INT 17/AH=02h,INT 4A"Tandy 2000"
  4232. SeeAlso: INT 53"Tandy 2000",INT 55"Tandy 2000"
  4233. --------X-545400-----------------------------
  4234. INT 54 U - Toshiba PCMCIA2 - INSTALLATION CHECK
  4235.     AX = 5400h
  4236. Return: AX = 0054h if installed
  4237.         CX:DX -> INT function handler
  4238. --------H-55---------------------------------
  4239. INT 55 - IRQ5 relocated by DESQview
  4240. Range:    INT 55 to INT FD, selected automatically
  4241. Note:    this is the default location for older versions; see INT 50"DESQview"
  4242.       for details of interrupt relocation
  4243. SeeAlso: INT 50"DESQview",INT 58"DESQview"
  4244. --------H-55---------------------------------
  4245. INT 55 - IRQ5 relocated by IBM 3278 emulation control program, OS/2 v1.x
  4246. SeeAlso: INT 51"IBM 3278",INT 51"OS/2"
  4247. --------b-55---------------------------------
  4248. INT 55 - TI Professional PC - RESERVED FOR FUTURE USE
  4249. Notes:    documented as "for system use only"; intended for multi-tasking
  4250.       software
  4251.     this interrupt is not used by the BIOS; the default handler generates
  4252.       a system error trap (see INT 51"TI Professional")
  4253. SeeAlso: INT 50"TI Professional",INT 56"TI Professional"
  4254. --------b-55---------------------------------
  4255. INT 55 - Tandy 2000 - SYSTEM CLOCK
  4256. Note:    this interrupt is identical to INT 1A on Tandy 2000
  4257. SeeAlso: INT 1A/AH=00h,INT 1A/AH=01h,INT 1A/AH=02h"Tandy 2000"
  4258. SeeAlso: INT 1A/AH=03h"Tandy 2000",INT 54"Tandy 2000",INT 56"Tandy 2000"
  4259. --------H-56---------------------------------
  4260. INT 56 - IRQ6 relocated by DESQview
  4261. Range:    INT 56 to INT FE, selected automatically
  4262. Note:    this is the default location for older versions; see INT 50"DESQview"
  4263.       for details of interrupt relocation
  4264. SeeAlso: INT 50"DESQview",INT 58"DESQview"
  4265. --------H-56---------------------------------
  4266. INT 56 - IRQ6 relocated by IBM 3278 emulation control program, OS/2 v1.x
  4267. SeeAlso: INT 51"IBM 3278",INT 51"OS/2"
  4268. --------b-56---------------------------------
  4269. INT 56 - TI Professional PC - RESERVED FOR FUTURE USE
  4270. Notes:    documented as "for system use only"; intended for multi-tasking
  4271.       software
  4272.     this interrupt is not used by the BIOS; the default handler generates
  4273.       a system error trap (see INT 51"TI Professional")
  4274. SeeAlso: INT 50"TI Professional",INT 55"TI Professional"
  4275. --------b-56---------------------------------
  4276. INT 56 - Tandy 2000 - FLOPPY DISK SERVICES
  4277. Note:    this interrupt is identical to INT 13 on Tandy 2000
  4278. SeeAlso: INT 13/AH=00h,INT 13/AH=01h,INT 13/AH=02h,INT 13/AH=03h
  4279. SeeAlso: INT 4A"Tandy 2000",INT 51"Tandy 2000",INT 55"Tandy 2000"
  4280. --------H-57---------------------------------
  4281. INT 57 - IRQ7 relocated by DESQview
  4282. Range:    INT 57 to INT FF, selected automatically
  4283. Note:    this is the default location for older versions; see INT 50"DESQview"
  4284.       for details of interrupt relocation
  4285. SeeAlso: INT 50"DESQview",INT 58"DESQview"
  4286. --------H-57---------------------------------
  4287. INT 57 - IRQ7 relocated by IBM 3278 emulation control program, OS/2 v1.x
  4288. SeeAlso: INT 51"IBM 3278",INT 51"OS/2"
  4289. --------b-57---------------------------------
  4290. INT 57 C - TI Professional PC - CRT MAPPING HOOK
  4291.     AX/BX/CX/DX/BP/SI/DI same as on entry to CRT subroutine (e.g. INT 49)
  4292.     DS = BIOS system segment
  4293.     ES = DE00h
  4294. Return: DF/IF flags must be preserved
  4295.     ES,DS,BP preserved
  4296.     AX,BX,CX,DX,SI,DI may be changed as necessary to modify the original
  4297.       call
  4298. Desc:    hooking this vector permits programs to intercept or modify all
  4299.       screen output, including both application calls to INT 49 and
  4300.       calls generated internally by the BIOS which bypass INT 49
  4301. Note:    by default, this vector points at an IRET instruction
  4302. SeeAlso: INT 49/AH=01h"TI",INT 50"TI Professional"
  4303. --------H-58---------------------------------
  4304. INT 58 - IRQ8 relocated by DESQview 2.26+
  4305. Range:    INT 58 to INT F8, selected automatically
  4306. Note:    this is the default, but other INTs may be used (see INT 50"DESQview")
  4307. SeeAlso: INT 50"DESQview",INT 59"DESQview",INT 70
  4308. --------H-58---------------------------------
  4309. INT 58 - IRQ0 relocated by DoubleDOS
  4310. SeeAlso: INT 08
  4311. --------b-58---------------------------------
  4312. INT 58 C - TI Professional PC - SYSTEM TIMER 25ms HOOK
  4313. Desc:    called from the hardware timer tick interrupt, after executing the
  4314.       first four BIOS timing events, updating the system clock, invoking
  4315.       INT 5A if required, saving registers, and switching to a temporary
  4316.       stack (the one reserved for IRQ3)
  4317. Notes:    the handler for this interrupt may destroy AX,BX,DI,ES but must
  4318.       preserve all other registers; 8 WORDs of stack space are available,
  4319.       of which at most 4 may be used if the handler enables interrupts
  4320.     if the handler switches stacks (because more than 4/8 WORDs are
  4321.       required), the original stack must be restored before chaining to
  4322.       the previous handler
  4323. SeeAlso: INT 43"TI Professional",INT 4C"TI Professional"
  4324. SeeAlso: INT 5A"TI Professional"
  4325. --------H-59---------------------------------
  4326. INT 59 - IRQ9 relocated by DESQview 2.26+
  4327. Range:    INT 59 to INT F9, selected automatically
  4328. Note:    this is the default, but other INTs may be used (see INT 50"DESQview")
  4329. SeeAlso: INT 50"DESQview",INT 58"DESQview",INT 5A"DESQview",INT 71
  4330. --------H-59---------------------------------
  4331. INT 59 - IRQ1 relocated by DoubleDOS
  4332. SeeAlso: INT 09
  4333. --------b-59---------------------------------
  4334. INT 59 - TI Professional PC - COMMON ROM HARDWARE INTERRUPT EXIT VECTOR
  4335. Desc:    all hardware interrupts on the TI Pro jump indirectly to the handler
  4336.       pointed at by this interrupt vector to finish their handling of
  4337.       the hardware interrupt
  4338. Notes:    the default handler decrements the interrupt count, restores registers
  4339.       (including the stack pointer), sends an EOI to the interrupt
  4340.       controller, and finally does an IRET
  4341.     can be used by multitaskers which need to get control after every
  4342.       hardware interrupt
  4343. SeeAlso: INT 40"TI Professional",INT 47"TI Professional"
  4344. SeeAlso: INT 53"TI Professional"
  4345. --------V-59---------------------------------
  4346. INT 59 - GSS Computer Graphics Interface (GSS*CGI)
  4347.     DS:DX -> block of 5 array pointers
  4348. Return: CF set on error
  4349.         AX = error code
  4350.     CF clear if successful
  4351.         AX = return code
  4352. Note:    INT 59 is the means by which GSS*CGI language bindings communicate with
  4353.       GSS*CGI device drivers and the GSS*CGI device driver controller.
  4354.     also used by the IBM Graphic Development Toolkit
  4355. --------H-5A---------------------------------
  4356. INT 5A - IRQ10 relocated by DESQview 2.26+
  4357. Range:    INT 5A to INT FA, selected automatically
  4358. Note:    this is the default, but other INTs may be used (see INT 50"DESQview")
  4359. SeeAlso: INT 50"DESQview",INT 59"DESQview",INT 5B"DESQview",INT 72
  4360. --------H-5A---------------------------------
  4361. INT 5A - IRQ2 relocated by DoubleDOS
  4362. SeeAlso: INT 0A"IRQ2"
  4363. --------N-5A---------------------------------
  4364. INT 5A - PC Cluster adapter BIOS entry address
  4365.     ???
  4366. Return: ???
  4367. SeeAlso: INT 5B"PC Cluster"
  4368. --------b-5A---------------------------------
  4369. INT 5A - TI Professional PC - SYSTEM TIMER 100ms HOOK
  4370. Desc:    called from the hardware timer tick interrupt, after executing the
  4371.       first four BIOS timing events, updating the system clock, saving
  4372.       registers, and switching to a temporary stack (the one reserved
  4373.       for IRQ3), but before calling INT 58
  4374.     no details available
  4375. Notes:    this interrupt is invoked on every fourth timer interrupt
  4376.     the handler for this interrupt may destroy AX,BX,DI,ES but must
  4377.       preserve all other registers; 8 WORDs of stack space are available,
  4378.       of which at most 4 may be used if the handler enables interrupts
  4379.     if the handler switches stacks (because more than 4/8 WORDs are
  4380.       required), the original stack must be restored before chaining to
  4381.       the previous handler
  4382. SeeAlso: INT 43"TI Professional",INT 4C"TI Professional"
  4383. SeeAlso: INT 58"TI Professional"
  4384. --------H-5B---------------------------------
  4385. INT 5B - IRQ11 relocated by DESQview 2.26+
  4386. Range:    INT 5B to INT FB, selected automatically
  4387. Note:    this is the default, but other INTs may be used (see INT 50"DESQview")
  4388. SeeAlso: INT 50"DESQview",INT 5A"DESQview",INT 5C"DESQview",INT 73
  4389. --------H-5B---------------------------------
  4390. INT 5B - IRQ3 relocated by DoubleDOS
  4391. SeeAlso: INT 0B
  4392. --------N-5B---------------------------------
  4393. INT 5B - PC cluster adapter - RELOCATED INT 19
  4394. SeeAlso: INT 19,INT 5A"PC Cluster"
  4395. --------N-5B---------------------------------
  4396. INT 5B - AT&T Starlan Extended NetBIOS (variable length names)
  4397.     ES:BX -> Network Control Block (see #2877)
  4398. Return: AL = status (see #2880)
  4399. SeeAlso: INT 5C"NetBIOS"
  4400.  
  4401. Format of Starlan Network Control Block:
  4402. Offset    Size    Description    (Table 2877)
  4403.  00h    BYTE    ncb_command (see also #2882)
  4404.         70h send net Break
  4405.  01h    BYTE    ncb_retcode
  4406.  02h    BYTE    ncb_lsn
  4407.  03h    BYTE    ncb_num
  4408.  04h    DWORD    -> ncb_buffer
  4409.  08h    WORD    ncb_length
  4410.  0Ah 16 BYTEs    ncb_callname
  4411.  1Ah 16 BYTEs    ncb_name
  4412.  2Ah    BYTE    ncb_rto
  4413.  2Bh    BYTE    ncb_sto
  4414.  2Ch    DWORD    -> ncb_post    /* int (far *ncb_post)(); */
  4415.  30h    BYTE    ncb_lana_num
  4416.  31h    BYTE    ncb_cmd_cplt
  4417.  32h    DWORD    -> ncb_vname
  4418.  36h    BYTE    ncb_vnamelen
  4419.  37h  9 BYTEs    ncb_reserve
  4420. Note:    fields 00h-31h are the same as for a standard NetBIOS NCB (see #2881)
  4421. --------N-5B---------------------------------
  4422. INT 5B - Microsoft Network Transport Layer Interface
  4423. Note:    used by MS-NET for executing network commands
  4424. SeeAlso: INT 5C"NetBIOS"
  4425. --------N-5B---------------------------------
  4426. INT 5B - used by Alloy NTNX
  4427. --------N-5B---------------------------------
  4428. INT 5B - ISOLAN Multi Protocol Software
  4429.     ES:BX -> Transfer Control Block (see #2878)
  4430. Return: AL = status
  4431. Note:    this software interface allows multiple protocols/software packages
  4432.       to access a BICC 411x network card
  4433.  
  4434. Format of ISOLAN Transfer Control Block:
  4435. Offset    Type    Description    (Table 2878)
  4436.  00h    BYTE    command code
  4437.         B3h Status
  4438.         F2h Activate
  4439.         F3h Deactivate
  4440.         F4h Send Data
  4441.  01h    BYTE    command identity
  4442.  02h    BYTE    virtual circuit ID
  4443.  03h    WORD    buffer length
  4444.  05h    DWORD    buffer pointer
  4445.  09h    BYTE    expedited data flag
  4446.  0Ah    BYTE    cancelable flag
  4447.  0Bh 16 BYTEs    local network address
  4448.  1Bh 16 BYTEs    remote network address
  4449.  2Bh    DWORD    asynchronous notification routine
  4450.  30h    DWORD    local network number
  4451.  34h    DWORD    remote network number
  4452.  38h    BYTE    call timeout
  4453.  39h    BYTE    not used
  4454.  3Ah  8 BYTEs    reserved
  4455.  42h    BYTE    command code extension
  4456.  43h    WORD    Blue Book MAC type
  4457. --------b-5B---------------------------------
  4458. INT 5B C - TI Professional PC - KEYBOARD MAPPING HOOK
  4459.     CF set
  4460.     AH = shift state (see #2879)
  4461.     AL = scan code (see #2846)
  4462. Return:    BX, CX, DI, ES may be destroyed
  4463.     various return methods are supported:
  4464.         IRET, AX unchanged: process keystroke normally
  4465.         IRET, AL = FFh: discard keystroke
  4466.         IRET, AX changed: process modified keystroke
  4467.         chain to old INT 5B: allow other handlers to look at (possibly
  4468.           modified) keystroke in AX
  4469.         RETF 2, CF clear: place returned AX into keyboard buffer without
  4470.           any further processing
  4471. Notes:    invoked by the keyboard ISR, and used to remap the keyboard
  4472.     if CF is clear on entry, some other handler has processed the
  4473.       keystroke and the current handler should not modify it, instead
  4474.       performing a RETF 2 or IRET (after clearing CF on the stack)
  4475.     when requesting that a value be placed directly into the keyboard
  4476.       buffer, AL and AH may not *both* be nonzero (the TI does not
  4477.       return scan codes as part of the key code for non-extended keys)
  4478. SeeAlso: INT 15/AH=4Fh,INT 4A/AH=00h"TI",INT 59"TI Professional"
  4479. SeeAlso: INT 5C"TI Professional",INT 5D"TI Professional"
  4480. SeeAlso: INT 5E"TI Professional",INT 5F"TI Professional"
  4481.  
  4482. Bitfields for TI Professional PC keyboard mapping hook shift states:
  4483. Bit(s)    Description    (Table 2879)
  4484.  7    CAPS LOCK is on
  4485.  6-4    reserved (0)
  4486.  3    repeated key
  4487.  2    Shift is pressed
  4488.  1    Alt is pressed
  4489.  0    Ctrl is pressed
  4490. --------U-5B5254DL04-------------------------
  4491. INT 5B U - SitBack v3.02R - GET ???
  4492.     AX = 5254h
  4493.     DL = 04h
  4494. Return: ES:BX -> ??? in resident portion
  4495. Program: SitBack is a background file backup utility by SitBack Technologies,
  4496.       Inc. which initiates backups whenever the system is idle
  4497. SeeAlso: AX=8485h/DL=71h,AX=8485h/DL=72h
  4498. --------U-5B8485DL70-------------------------
  4499. INT 5B U - SitBack v3.02R - INSTALLATION CHECK
  4500.     AX = 8485h
  4501.     DL = 70h
  4502. Return: CX = 8485h if installed
  4503.         DX:AX -> ??? (configuration data?)
  4504. Program: SitBack is a background file backup utility by SitBack Technologies,
  4505.       Inc. which initiates backups whenever the system is idle
  4506. SeeAlso: AX=5254h/DL=04h,AX=8485h/DL=78h
  4507. --------U-5B8485DL71-------------------------
  4508. INT 5B U - SitBack v3.02R - SET ??? FLAG AND GET ??? ADDRESS
  4509.     AX = 8485h
  4510.     DL = 71h
  4511. Return: ES:BX -> FAR entry point to ???
  4512. Note:    the flag which is modified is located at the address returned by
  4513.        AX=5254h/DL=04h
  4514. SeeAlso: AX=8485h/DL=72h
  4515. --------U-5B8485DL72-------------------------
  4516. INT 5B U - SitBack v3.02R - CLEAR ??? FLAG
  4517.     AX = 8485h
  4518.     DL = 72h
  4519. Note:    the flag which is modified is located at the address returned by
  4520.        AX=5254h/DL=04h
  4521. SeeAlso: AX=8485h/DL=71h
  4522. --------U-5B8485DL73-------------------------
  4523. INT 5B U - SitBack v3.02R - ???
  4524.     AX = 8485h
  4525.     DL = 73h
  4526.     ???
  4527. Return: ???
  4528. --------U-5B8485DL74-------------------------
  4529. INT 5B U - SitBack v3.02R - ???
  4530.     AX = 8485h
  4531.     DL = 74h
  4532.     ???
  4533. Return: ???
  4534. --------U-5B8485DL75-------------------------
  4535. INT 5B U - SitBack v3.02R - ???
  4536.     AX = 8485h
  4537.     DL = 75h
  4538.     CX = ???
  4539. Return: ???
  4540. SeeAlso: AX=8485h/DL=76h
  4541. --------U-5B8485DL76-------------------------
  4542. INT 5B U - SitBack v3.02R - ???
  4543.     AX = 8485h
  4544.     DL = 76h
  4545.     CX = ???
  4546. Return: ???
  4547. Note:    conditionally calls the code for AX=8485h/DL=75h
  4548. SeeAlso: AX=8485h/DL=75h
  4549. --------U-5B8485DL77-------------------------
  4550. INT 5B U - SitBack v3.02R - SET ??? FLAG
  4551.     AX = 8485h
  4552.     DL = 77h
  4553. --------U-5B8485DL78-------------------------
  4554. INT 5B U - SitBack v3.02R - GET RESIDENT DATA SEGMENT
  4555.     AX = 8485h
  4556.     DL = 78h
  4557. Return: CX = 5342h if supported
  4558.         ES = AX = segment of TSR data
  4559. SeeAlso: AX=8485h/DL=70h,AX=8485h/DL=79h
  4560. --------U-5B8485DL79-------------------------
  4561. INT 5B U - SitBack v3.02R - GET DTA
  4562.     AX = 8485h
  4563.     DL = 79h
  4564. Return: CX = 5342h if supported
  4565.         ES:BX -> DTA set by last INT 21/AH=1Ah
  4566. Note:    this function is provided by SBOS.EXE rather than SB.EXE
  4567. SeeAlso: INT 21/AH=1Ah
  4568. --------U-5B8485DL7A-------------------------
  4569. INT 5B U - SitBack v3.02R - TOGGLE ???
  4570.     AX = 8485h
  4571.     DL = 7Ah
  4572. Return: CX = 5342h if supported
  4573.         AL = new value of ??? (00h or 01h)
  4574. --------N-5C---------------------------------
  4575. INT 5C - NetBIOS INTERFACE
  4576.     ES:BX -> network control block (NCB) (see #2881)
  4577. Return: AL = status (see #2880)
  4578. Program: NetBIOS was developed by Sytek, Inc. in 1984 as a high-level
  4579.       programming interface to the IBM PC Network; the first implementation
  4580.       was a ROM BIOS extension on Sytek's PCnet LAN adapter card, but many
  4581.       current networks support NetBIOS as the session layer.
  4582. Note:    The Sytek PCnet card uses DMA 3.
  4583. SeeAlso: INT 2A/AH=01h,INT 2A/AH=04h,INT 5B"Extended NetBIOS"
  4584.  
  4585. (Table 2880)
  4586. Values for NetBIOS status:
  4587.  00h    successful
  4588.  01h    bad buffer size
  4589.  03h    invalid NETBIOS command
  4590.  05h    timeout
  4591.  06h    receive buffer too small
  4592.  07h    No-ACK command failed
  4593.  08h    bad session number
  4594.  09h    LAN card out of memory
  4595.  0Ah    session closed
  4596.  0Bh    command has been cancelled
  4597.  0Dh    name already exists
  4598.  0Eh    local name table full
  4599.  0Fh    name still in use, can't delete
  4600.  11h    local session table full
  4601.  12h    remote PC not listening
  4602.  13h    bad NCB_NUM field
  4603.  14h    no answer to CALL or no such remote
  4604.  15h    name not in local name table
  4605.  16h    duplicate name
  4606.  17h    bad delete
  4607.  18h    abnormal end
  4608.  19h    name error, multiple identical names in use
  4609.  1Ah    bad packet
  4610.  21h    network card busy
  4611.  22h    too many commands queued
  4612.  23h    bad LAN card number
  4613.  24h    command finished while cancelling
  4614.  26h    command can't be cancelled
  4615.  30h    name defined by another process (OS/2)
  4616.  34h    NetBIOS environment not defined, must issue reset (OS/2)
  4617.  35h    required operating system resources exhausted (OS/2)
  4618.  36h    maximum applications exceeded (OS/2)
  4619.  37h    no SAPs available for NetBIOS (OS/2)
  4620.  38h    requested resources not available (OS/2)
  4621.  40h    Lana System Error
  4622.  41h    Lana Remote Hot Carrier
  4623.  42h    Lana Local Hot Carrier
  4624.  43h    Lana No Carrier Detected
  4625.  44h    unusual network condition
  4626.  45h-4Dh hardware error
  4627.  4Eh    token ring is broken
  4628.  4Fh    token ring error
  4629.  50h    adapter malfunction
  4630.  F7h    error in explicit INITIALIZE
  4631.  F8h    error in implicit OPEN
  4632.  F9h    TOKREUI internal error
  4633.  FAh    hardware adapter testing
  4634.  FBh    NetBIOS emulator not found
  4635.  FCh    OPEN or OPEN_SAP failure
  4636.  FDh    unexpected adapter closure
  4637.  FFh    NetBIOS busy (command pending)
  4638.  
  4639. Format of NetBIOS Network Control Block:
  4640. Offset    Size    Description    (Table 2881)
  4641.  00h    BYTE    command code (see #2882)
  4642.  01h    BYTE    return code (see #2880)
  4643.  02h    BYTE    local session number (LSN)
  4644.  03h    BYTE    "ncb_num" datagram table entry from ADD NAME
  4645.  04h    DWORD    -> I/O buffer
  4646.  08h    WORD    length of data in buffer
  4647.  0Ah 16 BYTEs    remote system to call
  4648.  1Ah 16 BYTEs    network name of local machine
  4649.  2Ah    BYTE    receive timeout in 1/2 seconds
  4650.  2Bh    BYTE    send timeout in 1/2 seconds
  4651.  2Ch    DWORD    -> FAR post handler    /* int (far *ncb_post)(); */
  4652.  30h    BYTE    network adapter number on which to execute command
  4653.         00h-03h IBM NetBIOS specs
  4654.         F0h-FFh Eicon NABios interface (see also INT 7B"Eicon")
  4655.  31h    BYTE    command completion code (see #2880)
  4656.  32h 14 BYTEs    reserved for network card
  4657.  
  4658. (Table 2882)
  4659. Values for NetBIOS command code field in NCB:
  4660.  10h    start session with NCB_NAME name (call)
  4661.  11h    listen for call
  4662.  12h    end session with NCB_NAME name (hangup)
  4663.  14h    send data via NCB_LSN
  4664.  15h    receive data from a session
  4665.  16h    receive data from any session
  4666.  17h    send multiple data buffers
  4667.  20h    send unACKed message (datagram)
  4668.  21h    receive datagram
  4669.  22h    send broadcast datagram
  4670.  23h    receive broadcast datagram
  4671.  30h    add name to name table
  4672.  31h    delete name from name table
  4673.  32h    reset adapter card and tables
  4674.  33h    get adapter status (see #2883)
  4675.  34h    status of all sessions for name (see #2885)
  4676.  35h    cancel
  4677.  36h    add group name to name table
  4678.  48h    send data and receive data (LAN Manager NETBEUI.DOS)
  4679.  70h    unlink from IBM remote program (no F0h function)
  4680.  71h    send data without ACK
  4681.  72h    send multiple buffers without ACK
  4682.  72h    UngermannBass Register (conflicts with above function)
  4683.  73h    UngermannBass SendNmc
  4684.  74h    UngermannBass Callniu
  4685.  75h    UngermannBass Calladdr
  4686.  76h    UngermannBass Listenaddr
  4687.  77h    UngermannBass SendPkt
  4688.  78h    find name
  4689.  78h    UngermannBass RcvPkt (conflicts with above function)
  4690.  79h    token-ring protocol trace
  4691.  79h    UngermannBass SendAttn (conflicts with above function)
  4692.  7Ah    UngermannBass RcvAttn
  4693.  7Bh    UngermannBass Listenniu
  4694.  7Ch    UngermannBass RcvRaw
  4695.  7Dh    UngermannBass SendNmc2
  4696.  7Fh    Beame&Whiteside BWNB installation check (returns with return code and
  4697.       completion code both set to 03h, while invalid functions return only
  4698.       return code field set to 03h)
  4699. Note:    OR any of the above except 70h with 80h for non-waiting call
  4700.  
  4701. Format of NetBIOS structure "astatus":
  4702. Offset    Size    Description    (Table 2883)
  4703.  00h  6 BYTEs as_id
  4704.  06h    BYTE  as_jumpers
  4705.  07h    BYTE  as_post
  4706.  08h    BYTE  as_major
  4707.  09h    BYTE  as_minor
  4708.  0Ah    WORD  as_interval
  4709.  0Ch    WORD  as_crcerr
  4710.  0Eh    WORD  as_algerr
  4711.  10h    WORD  as_colerr
  4712.  12h    WORD  as_abterr
  4713.  14h    DWORD as_tcount
  4714.  18h    DWORD as_rcount
  4715.  1Ch    WORD  as_retran
  4716.  1Eh    WORD  as_xresrc
  4717.  20h  8 BYTEs as_res0
  4718.  28h    WORD  as_ncbfree
  4719.  2Ah    WORD  as_ncbmax
  4720.  2Ch    WORD  as_ncbx
  4721.  2Eh  4 BYTEs as_res1
  4722.  32h    WORD  as_sespend
  4723.  34h    WORD  as_msp
  4724.  36h    WORD  as_sesmax
  4725.  38h    WORD  as_bufsize
  4726.  3Ah    WORD  as_names
  4727.  3Ch 16 name structures     as_name (see #2884)
  4728.  
  4729. Format of NetBIOS structure "name":
  4730. Offset    Size    Description    (Table 2884)
  4731.  00h 16 BYTEs "nm_name" symbolic name
  4732.  10h    BYTE  "nm_num" number associated with name
  4733.  11h    BYTE  nm_status
  4734.  
  4735. Format of NetBIOS structure "sstatus":
  4736. Offset    Size    Description    (Table 2885)
  4737.  00h    BYTE    number of sessions being reported
  4738.  01h    BYTE    number of sessions with this name
  4739.  02h    BYTE    number of outstanding receive datagrams
  4740.  03h    BYTE    number of outstanding ReceiveAnys
  4741.  04h    var    session structures (see #2886)
  4742.  
  4743. Format of NetBIOS structure "session":
  4744. Offset    Size    Description    (Table 2886)
  4745.  00h    BYTE    local session number
  4746.  01h    BYTE    state
  4747.         01h listen pending
  4748.         02h call pending
  4749.         03h session established
  4750.         04h hangup pending
  4751.         05h hangup done
  4752.         06h session aborted
  4753.  02h 16 BYTEs    local name
  4754.  12h 16 BYTEs    remote name
  4755.  22h    BYTE    number of outstanding receives
  4756.  23h    BYTE    number of outstanding sends/chainsends
  4757. --------H-5C---------------------------------
  4758. INT 5C - IRQ12 relocated by DESQview 2.26+
  4759. Range:    INT 5C to INT FC, selected automatically
  4760. Note:    this is the default, but other INTs may be used (see INT 50"DESQview")
  4761. SeeAlso: INT 50"DESQview",INT 5B"DESQview",INT 5D"DESQview",INT 74
  4762. --------H-5C---------------------------------
  4763. INT 5C - IRQ4 relocated by DoubleDOS
  4764. SeeAlso: INT 0C
  4765. --------N-5C---------------------------------
  4766. INT 5C - TOPS INTERFACE
  4767.     ES:BX -> Network Control Block
  4768. Note:    TOPS card uses DMA 1, 3 or none.
  4769. --------N-5C---------------------------------
  4770. INT 5C - ATALK.SYS - AppleTalk INTERFACE
  4771.     DX:BX -> control block (see #2888)
  4772. Return: none
  4773. Range:    INT 5Ch to INT 70h
  4774. Notes:    the signature 'AppleTalk' appears 16 bytes prior to the interrupt
  4775.       handler; this serves as the installation check
  4776. Index:    installation check;ATALK.SYS|installation check;AppleTalk interface
  4777.  
  4778. (Table 2887)
  4779. Values for ATALK.SYS command code:
  4780.  01h    "AT_INIT"        initialize the driver
  4781.  02h    "AT_KILL"
  4782.  03h    "AT_GETNETINFO" get current network info incl init status
  4783.  04h    "AT_GETCLOCKTICKS"
  4784.  05h    "AT_STARTTIMER"
  4785.  06h    "AT_RESETTIMER"
  4786.  07h    "AT_CANCELTIMER"
  4787.  10h    "LAP_INSTALL"
  4788.  11h    "LAP_REMOVE"
  4789.  12h    "LAP_WRITE"
  4790.  13h    "LAP_READ"
  4791.  14h    "LAP_CANCEL"
  4792.  20h    "DDP_OPENSOCKET"
  4793.  21h    "DDP_CLOSESOCKET"
  4794.  22h    "DDP_WRITE"
  4795.  23h    "DDP_READ"
  4796.  24h    "DDP_CANCEL"
  4797.  30h    "NBP_REGISTER"
  4798.  31h    "NBP_REMOVE"
  4799.  32h    "NBP_LOOKUP"
  4800.  33h    "NBP_CONFIRM"
  4801.  34h    "NBP_CANCEL"
  4802.  35h    "ZIP_GETZONELIST"
  4803.  36h    "ZIP_GETMYZONE"
  4804.  37h    "ZIP_TAKEDOWN"
  4805.  38h    "ZIP_BRINGUP"
  4806.  40h    "ATP_OPENSOCKET"
  4807.  41h    "ATP_CLOSESOCKET"
  4808.  42h    "ATP_SENDREQUEST"
  4809.  43h    "ATP_GETREQUEST"
  4810.  44h    "ATP_SENDRESPONSE"
  4811.  45h    "ATP_ADDRESPONSE"
  4812.  46h    "ATP_CANCELTRANS"
  4813.  47h    "ATP_CANCELRESPONSE"
  4814.  48h    "ATP_CANCELREQUEST"
  4815.  50h    "ASP_GETPARMS"
  4816.  51h    "ASP_CLOSESESSION"
  4817.  52h    "ASP_CANCEL"
  4818.  53h    "ASP_INIT"
  4819.  54h    "ASP_KILL"
  4820.  55h    "ASP_GETSESSION"
  4821.  56h    "ASP_GETREQUEST"
  4822.  57h    "ASP_CMDREPLY"
  4823.  58h    "ASP_WRTCONTINUE"
  4824.  59h    "ASP_WRTREPLY"
  4825.  5Ah    "ASP_CLOSEREPLY"
  4826.  5Bh    "ASP_NEWSTATUS"
  4827.  5Ch    "ASP_ATTENTION"
  4828.  5Dh    "ASP_GETSTATUS"
  4829.  5Eh    "ASP_OPENSESSION"
  4830.  5Fh    "ASP_COMMAND"
  4831.  60h    "ASP_WRITE"
  4832.  61h    "ASP_GETATTENTION"
  4833.  70h    "PAP_OPEN"
  4834.  71h    "PAP_CLOSE"
  4835.  72h    "PAP_READ"
  4836.  73h    "PAP_WRITE"
  4837.  74h    "PAP_STATUS"
  4838.  75h    "PAP_REGNAME"
  4839.  76h    "PAP_REMNAME"
  4840.  77h    "PAP_INIT"
  4841.  78h    "PAP_NEWSTATUS"
  4842.  79h    "PAP_GETNEXTJOB"
  4843.  7Ah    "PAP_KILL"
  4844.  7Bh    "PAP_CANCEL"
  4845.  
  4846. Format of AppleTalk control block:
  4847. Offset    Size    Description    (Table 2888)
  4848.  00h    WORD    command code (see #2887)
  4849.         OR with the following flags
  4850.         8000h start command then return
  4851.         4000h wait for interrupt service to complete
  4852.  02h    WORD    returned status
  4853.         0000h success (already initialized if func 01h)
  4854.  04h    DWORD    pointer to completion function
  4855.  08h    WORD    network number
  4856.  0Ah    BYTE    node ID
  4857. ---if general func (01h,03h), control block continues:
  4858.  0Bh    BYTE    "inf_abridge"
  4859.  0Ch    WORD    "inf_config"
  4860.  0Eh    DWORD    pointer to buffer
  4861.  12h    WORD    buffer size
  4862. ---if DDP function (20h-24h), control block continues:
  4863.  0Bh    BYTE    "ddp_addr_socket"
  4864.  0Ch    BYTE    "ddp_socket"
  4865.  0Dh    BYTE    "ddp_type"
  4866.  0Eh    DWORD    pointer to buffer
  4867.  12h    WORD    buffer size
  4868.  14h    BYTE    "ddp_chksum"
  4869. ---if Name Binding Protocol (30h-34h), control block continues:
  4870.  0Bh    BYTE    "nbp_addr_socket"
  4871.  0Ch    WORD    "nbp_toget"
  4872.  0Eh    DWORD    pointer to buffer (see #2889)
  4873.  12h    WORD    buffer size
  4874.  14h    BYTE    "nbp_interval"
  4875.  15h    BYTE    "nbp_retry"
  4876.  16h    DWORD    "nbp_entptr"
  4877. ---if AppleTalk Transaction Protocol (42h), control block continues:
  4878.  0Bh    BYTE    "atp_addr_socket"
  4879.  0Ch    WORD    "atp_socket"
  4880.  0Eh    DWORD    pointer to buffer
  4881.  12h    WORD    buffer size
  4882.  14h    BYTE    "atp_interval"
  4883.  15h    BYTE    "atp_retry"
  4884.  16h    BYTE    ATP flags
  4885.         bit 5: exactly one transaction
  4886.  17h    BYTE    "atp_seqbit"
  4887.  18h    BYTE    transaction ID
  4888.  19h  4 BYTEs    ATP user bytes
  4889.  1Dh    BYTE    number of BDS buffers
  4890.  1Eh    BYTE    number of BDS responses
  4891.  1Fh    DWORD    pointer to BDS buffers (see #2890)
  4892.  
  4893. Format of Name Binding Protocol Name-to-Address binding entries for NBP_LOOKUP:
  4894. Offset    Size    Description    (Table 2889)
  4895.  00h    WORD    "tup_address_network"
  4896.  02h    BYTE    "tup_address_notid"
  4897.  03h    BYTE    "tup_address_socket"
  4898.  04h    BYTE    "tup_enum"
  4899.  05h 99 BYTEs    name
  4900.  
  4901. Format of BDS entries:
  4902. Offset    Size    Description    (Table 2890)
  4903.  00h    DWORD    pointer to buffer
  4904.  04h    WORD    size of buffer
  4905.  06h    WORD    BDS data size
  4906.  08h  4 BYTEs    "bds_userbytes"
  4907. --------N-5C---------------------------------
  4908. INT 5C - IBM 802.2 INTERFACE (LLC)
  4909.     ES:BX -> CCB (see #2891)
  4910. Return: none
  4911.  
  4912. Format of IBM 802.2 CCB:
  4913. Offset    Size    Description    (Table 2891)
  4914.  00h    BYTE    adapter
  4915.  01h    BYTE    command code
  4916.  02h    BYTE    return code
  4917.  03h    BYTE    work
  4918.  04h    DWORD    pointer to ???
  4919.  08h    DWORD    pointer to completion function???
  4920.  0Ch    DWORD    pointer to parameters???
  4921. --------N-5C---------------------------------
  4922. INT 5C - $25 LAN - INSTALLATION CHECK
  4923. Notes:    current versions only check whether the vector is 0000h:0000h or not
  4924.     future versions are supposed to have the signature "NET" in the three
  4925.       bytes preceding the INT 5C handler
  4926. --------b-5C0100-----------------------------
  4927. INT 5C C - TI Professional PC - KEYBOARD PAUSE KEY VECTOR
  4928.     AX = 0100h
  4929.     CF clear
  4930. Return: CF clear
  4931.         AX = keystroke to be placed into keyboard buffer
  4932.     CF set
  4933.         AX ignored
  4934. Desc:    toggle a pause flag which is checked by the CRT Device Service Routine
  4935.       (see INT 49/AH=01h"TI") and causes it to temporarily halt the
  4936.       machine on the next video-related function (until a key is pressed)
  4937. SeeAlso: INT 09"IRQ1",INT 4A/AH=00h"TI",INT 59"TI Professional"
  4938. SeeAlso: INT 5B"TI Professional",INT 5D"TI Professional"
  4939. SeeAlso: INT 5E"TI Professional",INT 5F"TI Professional"
  4940. --------N-5C04-------------------------------
  4941. INT 5C - $25 LAN - CHECK IF CONNECTION ALIVE
  4942.     AH = 04h
  4943.     AL = COM port (0 = default)
  4944.     CX = wait count in character times (should be at least 100)
  4945. Return: ZF set if link alive
  4946. --------H-5D---------------------------------
  4947. INT 5D - IRQ13 relocated by DESQview 2.26+
  4948. Range:    INT 5D to INT FD, selected automatically
  4949. Note:    this is the default, but other INTs may be used (see INT 50"DESQview")
  4950. SeeAlso: INT 50"DESQview",INT 5C"DESQview",INT 5E"DESQview",INT 75
  4951. --------H-5D---------------------------------
  4952. INT 5D - IRQ5 relocated by DoubleDOS
  4953. SeeAlso: INT 0D"IRQ5",INT 5C"DoubleDOS"
  4954. --------b-5D---------------------------------
  4955. INT 5D C - TI Professional PC - KEYBOARD BREAK KEY VECTOR
  4956.     CF clear
  4957.     AX = 0000h
  4958. Return: CF clear
  4959.         AX = keystroke to place into keyboard buffer
  4960.     CF set
  4961.         AX ignored
  4962. Desc:    invoked by the keyboard ISR when Shift-BrkPause is pressed
  4963. Note:    the default handler is a simple IRET instruction
  4964. SeeAlso: INT 09"IRQ1",INT 4A/AH=00h"TI",INT 59"TI Professional"
  4965. SeeAlso: INT 5B"TI Professional",INT 5C"TI Professional"
  4966. SeeAlso: INT 5E"TI Professional",INT 5F"TI Professional"
  4967. --------H-5E---------------------------------
  4968. INT 5E - IRQ14 relocated by DESQview 2.26+
  4969. Range:    INT 5E to INT FE, selected automatically
  4970. Note:    this is the default, but other INTs may be used (see INT 50"DESQview")
  4971. SeeAlso: INT 50"DESQview",INT 5D"DESQview",INT 5F"DESQview",INT 76
  4972. --------H-5E---------------------------------
  4973. INT 5E - IRQ6 relocated by DoubleDOS
  4974. SeeAlso: INT 0E,INT 5D"DoubleDOS"
  4975. --------b-5E---------------------------------
  4976. INT 5E C - TI Professional PC - KEYBOARD PRINT-SCREEN VECTOR
  4977.     CF set
  4978. Return: CF clear
  4979.         AX = keystroke to be placed into keyboard buffer
  4980.     CF set
  4981.         AX ignored
  4982. Desc:    hook to dump the screen to the printer
  4983. Notes:    hooked by TI MS-DOS, which provides a PRTSCRN character device which
  4984.       can invoke screen prints when a decimal digit (indicating the type
  4985.       of screen dump) is written to it
  4986.     the TI MS-DOS print-screen routine allows selective dumps of text
  4987.       only, graphics only, or text and graphics superimposed, in either
  4988.       normal or reverse, by pressing the appropriate keystroke combination:
  4989.       Shift-Print, Ctrl-Print, Alt-Print, Shift-Alt-Print, Ctrl-Alt-Print,
  4990.       or Shift-Ctrl-Print.
  4991.     the BIOS default routine for this vector is an IRET
  4992. SeeAlso: INT 05"PRINT SCREEN",INT 4A/AH=00h"TI",INT 59"TI Professional"
  4993. SeeAlso: INT 5B"TI Professional",INT 5C"TI Professional"
  4994. SeeAlso: INT 5D"TI Professional",INT 5F"TI Professional"
  4995. --------H-5F---------------------------------
  4996. INT 5F - IRQ15 relocated by DESQview 2.26+
  4997. Range:    INT 5F to INT FF, selected automatically
  4998. Note:    this is the default, but other INTs may be used (see INT 50"DESQview")
  4999. SeeAlso: INT 50"DESQview",INT 5E"DESQview",INT 77
  5000. --------H-5F---------------------------------
  5001. INT 5F - IRQ7 relocated by DoubleDOS
  5002. SeeAlso: INT 0F,INT 5E"DoubleDOS"
  5003. --------b-5F---------------------------------
  5004. INT 5F C - TI Professional PC - KEYBOARD QUEUEING VECTOR
  5005. Return: all registers preserved
  5006. Desc:    hook for multitaskers to be informed when a keypress is placed in the
  5007.       keyboard buffer
  5008. Note:    the default handler is a simple IRET instruction
  5009. SeeAlso: INT 09,INT 4A/AH=00h"TI",INT 59"TI Professional"
  5010. SeeAlso: INT 5B"TI Professional",INT 5C"TI Professional"
  5011. SeeAlso: INT 5D"TI Professional",INT 5E"TI Professional"
  5012. --------b-5F00-------------------------------
  5013. INT 5F - HP 95LX/100LX/200LX GRAPHICS PRIMITIVES - SET VIDEO MODE
  5014.     AH = 00h
  5015.     AL = video mode
  5016.         03h text,CGA color (100LX/200LX)
  5017.         06h 640x200 CGA graphics (100LX/200LX)
  5018.         07h text, system manager compliant
  5019.         20h 240x128 mono graphics, system manager compliant
  5020.         87h text, not system manager compliant
  5021.         A0h 240x128 mono graphics, not system manager compliant
  5022. Notes:    the defaults after setting the mode to graphics are (0,0) logical
  5023.       origin, full-screen clip region, (0,0) pen location, pen color 1,
  5024.       pixel replacement FORCE, line type and fill mask all bits set
  5025.     modes 03h and 06h can also be set with the standard INT 10/AH=00h
  5026. SeeAlso: INT 0F"HP 95LX",INT 10/AH=00h,INT 15/AX=4DD4h
  5027. --------b-5F01-------------------------------
  5028. INT 5F - HP 95LX/100LX/200LX GRAPHICS PRIMITIVES - SET FILL MASK
  5029.     AH = 01h
  5030.     ES:DI -> 8-byte fill mask
  5031. Note:    the fill mask represents an 8x8 pixel box and is repeated as necessary
  5032.       when drawing filled rectangles; it is always aligned with the byte
  5033.       boundaries of video memory, regardless of the actual boundaries of
  5034.       the rectangle
  5035. SeeAlso: AH=02h
  5036. --------b-5F02-------------------------------
  5037. INT 5F - HP 95LX/100LX/200LX GRAPHICS PRIMITIVES - GET CURRENT GRAPHICS INFO
  5038.     AH = 02h
  5039.     ES:DI -> graphics info record (see #2892)
  5040. Return: DX:AX -> filled graphics info record (for return to high-level langs)
  5041.  
  5042. Format of HP 95LX graphics info record:
  5043. Offset    Size    Description    (Table 2892)
  5044.  00h    BYTE    current video mode
  5045.  01h    BYTE    default video mode
  5046.  02h    WORD    display width in pixels
  5047.  04h    WORD    display height in pixels
  5048.  06h    WORD    current pen column
  5049.  08h    WORD    current pen row
  5050.  0Ah    WORD    current line type
  5051.  0Ch    WORD    current replacement rule
  5052.  0Eh    WORD    current pen color
  5053.  10h    WORD    current leftmost column of clip region
  5054.  12h    WORD    current rightmost column of clip region
  5055.  14h    WORD    current topmost row of clip region
  5056.  16h    WORD    current bottommost row of clip region
  5057.  18h    WORD    current column of logical origin
  5058.  1Ah    WORD    current row of logical origin
  5059.  1Ch  8 BYTEs    current fill mask
  5060. --------b-5F03-------------------------------
  5061. INT 5F - HP 95LX/100LX/200LX GRAPHICS PRIMITIVES - SET LOGICAL ORIGIN
  5062.     AH = 03h
  5063.     CX = column
  5064.     DX = row
  5065. SeeAlso: AH=04h
  5066. --------b-5F04-------------------------------
  5067. INT 5F - HP 95LX/100LX/200LX GRAPHICS PRIMITIVES - SET CLIP REGION
  5068.     AH = 04h
  5069.     CX = left-most column
  5070.     DX = top-most row
  5071.     SI = right-most column
  5072.     DI = bottom-most row
  5073. SeeAlso: AH=03h
  5074. --------b-5F05-------------------------------
  5075. INT 5F - HP 95LX/100LX/200LX GRAPHICS PRIMITIVES - DRAW RECTANGLE
  5076.     AH = 05h
  5077.     AL = fill type
  5078.         00h outline, using current line type and color
  5079.         01h solid, using current color
  5080.         02h pattern, using current fill mask and color
  5081.     DX,CX = row,column of other corner of rectangle
  5082. Note:    the rectangle is drawn starting at the current pen position
  5083. SeeAlso: AH=01h,AH=06h,AH=07h
  5084. --------b-5F06-------------------------------
  5085. INT 5F - HP 95LX/100LX/200LX GRAPHICS PRIMITIVES - DRAW LINE
  5086.     AH = 06h
  5087.     DX,CX = row,column of end point
  5088. Note:    the line is drawn starting at the current pen position
  5089. SeeAlso: AH=05h,AH=07h
  5090. --------b-5F07-------------------------------
  5091. INT 5F - HP 95LX/100LX/200LX GRAPHICS PRIMITIVES - PLOT POINT
  5092.     AH = 07h
  5093.     DX,CX = row,column of point
  5094. Note:    also sets pen position to the specified point
  5095. SeeAlso: AH=06h,AH=08h,AH=0Ch
  5096. --------b-5F08-------------------------------
  5097. INT 5F - HP 95LX/100LX/200LX GRAPHICS PRIMITIVES - MOVE PEN
  5098.     AH = 08h
  5099.     DX,CX = row,column of new pen position
  5100. SeeAlso: AH=07h,AH=09h
  5101. --------b-5F09-------------------------------
  5102. INT 5F - HP 95LX/100LX/200LX GRAPHICS PRIMITIVES - SET PEN COLOR
  5103.     AH = 09h
  5104.     AL = new color (00h = white, 01h = black)
  5105. SeeAlso: AH=08h,AH=0Ah,AH=0Bh
  5106. --------b-5F0A-------------------------------
  5107. INT 5F - HP 95LX/100LX/200LX GRAPHICS PRIMITIVES - SET REPLACEMENT RULE
  5108.     AH = 0Ah
  5109.     AL = new replacement rule
  5110.         00h force
  5111.         01h AND
  5112.         02h OR
  5113.         03h XOR
  5114.         ---100LX/200LX---
  5115.         04h InvForce
  5116.         05h InvAND
  5117.         06h    InvOR
  5118.         07h InvXOR
  5119.         08h Txt
  5120. SeeAlso: AH=01h,AH=09h,AH=0Bh
  5121. --------b-5F0B-------------------------------
  5122. INT 5F - HP 95LX/100LX/200LX GRAPHICS PRIMITIVES - SET LINE TYPE
  5123.     AH = 0Bh
  5124.     CX = new line type
  5125. Note:    the line type specifies 16 bits which are repeated over and over while
  5126.       drawing the pixels of a line
  5127. SeeAlso: AH=09h,AH=0Ah
  5128. --------b-5F0C-------------------------------
  5129. INT 5F - HP 95LX/100LX/200LX GRAPHICS PRIMITIVES - GET PIXEL
  5130.     AH = 0Ch
  5131.     DX,CX = row,column of pixel to read
  5132. Return: AX = pixel color
  5133. SeeAlso: AH=07h
  5134. --------b-5F0D-------------------------------
  5135. INT 5F - HP 95LX/100LX/200LX GRAPHICS PRIMITIVES - GET IMAGE
  5136.     AH = 0Dh
  5137.     DX,CX = row,column of first corner
  5138.     BP,SI = row,column of second corner
  5139.     ES:DI -> image buffer (see #2893)
  5140. Note:    the specified corners are included in the saved image
  5141. SeeAlso: AH=0Eh
  5142.  
  5143. Format of HP 95LX image buffer:
  5144. Offset    Size    Description    (Table 2893)
  5145.  00h    WORD    number of planes (always 01h on HP 95LX)
  5146.  02h    WORD    number of bits/pixel (always 01h on HP 95LX)
  5147.  04h    WORD    image width in pixels
  5148.  06h    WORD    image height in pixels
  5149.  08h  N BYTEs    image data
  5150.         requires (WIDTH+7)/8 * HEIGHT bytes
  5151. --------b-5F0E-------------------------------
  5152. INT 5F - HP 95LX/100LX/200LX GRAPHICS PRIMITIVES - PUT IMAGE
  5153.     AH = 0Eh
  5154.     AL = replacement rule (see #2894)
  5155.     DX,CX = row,column of top left corner
  5156.     ES:DI -> image buffer (see #2893)
  5157. Note:    if the specified image does not fit completely on the screen, this call
  5158.       does nothing
  5159. SeeAlso: AH=0Dh
  5160.  
  5161. Bitfields for replacement rule:
  5162. Bit(s)    Description    (Table 2894)
  5163.  2    invert image before applying rule
  5164.  1-0    function (00 force, 01 AND, 10 OR, 11 XOR)
  5165. --------b-5F0F-------------------------------
  5166. INT 5F - HP 95LX/100LX/200LX GRAPHICS PRIMITIVES - WRITE TEXT
  5167.     AH = 0Fh
  5168.     AL = rotate flag (if nonzero, rotate 90 degrees counter-clockwise)
  5169.     DX,CX = row,column of first character's top left corner
  5170.     ES:DI -> ASCIZ text
  5171. --------b-5F10-------------------------------
  5172. INT 5F - HP 100LX/200LX GRAPHICS PRIMITIVES - GET FONT POINTER
  5173.     AH = 10h
  5174.     CX = font size of desired font
  5175.         0808h  8x8    small  (80x25 text)
  5176.         0A0Bh 11x10 medium (64x18 text)
  5177.         100Ch 12x16 large  (40x16 text)
  5178. Return: DX:AX -> ptr to font or 0000h:fontID# if built-in font
  5179. SeeAlso: AH=11h
  5180. --------b-5F11-------------------------------
  5181. INT 5F - HP 100LX/200LX GRAPHICS PRIMITIVES - SET CURRENT FONT
  5182.     AH = 11h
  5183.     ES:DI -> ptr to font or 0000h:fontID# for built-in font
  5184. Note:    this function should be called immediately after AH=10h with the
  5185.       pointer supplied by that call
  5186. SeeAlso: AH=10h
  5187. --------*-60---------------------------------
  5188. INT 60 - reserved for user interrupt
  5189. --------v-60---------------------------------
  5190. INT 60 - VIRUS - "Zero Bug" - INSTALLATION CHECK
  5191. Desc:    The "Zero Bug" virus hooks this vector.     It considers itself installed
  5192.       if offset 103h of the handler's segment contains the bytes "ZE"
  5193. SeeAlso: INT 32"VIRUS",INT 44"VIRUS",INT 61"SEMTEX"
  5194. --------d-60---------------------------------
  5195. INT 60 - Adaptec and OMTI controllers - DRIVE 0 DATA
  5196. SeeAlso: INT 41"HARD DISK 0",INT 61"Adaptec",INT 62"Adaptec",INT 63"Adaptec"
  5197. SeeAlso: INT 64"Adaptec",INT C0"AMI",#0649 at INT 1A/AX=B102h
  5198. Notes:    this vector stores the first four bytes of the parameter table for
  5199.       hard disk 0
  5200.     these vectors are used by the following Adaptec controllers:
  5201.         ACB 2370 A/B/C, ACB 2372 A/B/C, ACB 2333 A/B, 2322B-8, 2322B-16
  5202.     these vectors are NOT used by the following Adaptec controllers:
  5203.         ACB 2310, ACB 2312, ACB 2320D, ACB 2322D
  5204. --------b-60---------------------------------
  5205. INT 60 - TI Professional PC - SYSTEM ROM DATA AREA POINTER (NOT A VECTOR!)
  5206. Desc:    the low word of this vector contains the segment of the RAM data area
  5207.       to be used by the system ROM at F400h:A000h, and the high word
  5208.       contains the length of the data area (see #2895)
  5209. SeeAlso: INT 61"TI Professional PC",INT 66"TI Professional PC"
  5210.  
  5211. Format of TI Professional System ROM data area:
  5212. Offset    Size    Description    (Table 2895)
  5213.  00h    BYTE    port 00h shadow
  5214.  01h    BYTE    port 03h shadow
  5215.  02h    BYTE    port 04h shadow
  5216.  03h    WORD    system configuration word (see #2898)
  5217.  05h    BYTE    25ms count
  5218.  06h    WORD    offset of timing event 1 (0008h)
  5219.  08h    WORD    (event 1) offset of timing event 2 (0010h)
  5220.  0Ah    BYTE    (event 1) unused (FFh)
  5221.  0Bh    BYTE    (event 1) active flag (bit 7 set if on)
  5222.  0Ch    WORD    (event 1) count-down until end of event
  5223.  0Eh    WORD    (event 1) event routine (in segment F400h) to call at timeout
  5224.  10h    WORD    (event 2) offset of timing event 3 (0018h)
  5225.  12h    BYTE    (event 2) unused (FFh)
  5226.  13h    BYTE    (event 2) active flag (bit 7 set if on)
  5227.  14h    WORD    (event 2) count-down until end of event
  5228.  16h    WORD    (event 2) event routine (in segment F400h) to call at timeout
  5229.  18h    WORD    (event 3) offset of timing event 3 (0020h)
  5230.  1Ah    BYTE    (event 3) unused (FFh)
  5231.  1Bh    BYTE    (event 3) active flag (bit 7 set if on)
  5232.  1Ch    WORD    (event 3) count-down until end of event
  5233.  1Eh    WORD    (event 3) event routine (in segment F400h) to call at timeout
  5234.  20h    WORD    (event 4) 0000h - last event
  5235.  22h    BYTE    (event 4) unused (FFh)
  5236.  23h    BYTE    (event 4) active flag (bit 7 set if on)
  5237.  24h    WORD    (event 4) count-down until end of event
  5238.  26h    WORD    (event 4) event routine (in segment F400h) to call at timeout
  5239.  28h    WORD    offset of start of text display within segment DE00h
  5240.  2Ah    WORD    end of display
  5241.  2Ch    WORD    current absolute cursor position
  5242.  2Eh    WORD    start of current character row
  5243.  30h    WORD    current cursor column
  5244.  32h    WORD    cursor type and size (see #2896)
  5245.  34h    WORD    start of protected status region on screen (0000h = none)
  5246.  36h    BYTE    pop flag used by some ROM routines
  5247.         00h pop registers before return
  5248.         nonzero: do not pop
  5249.  37h    BYTE    unused (FFh)
  5250.  38h    BYTE    PAUSE flag
  5251.         00h off
  5252.         FFh on
  5253.  39h    BYTE    temp: current attribute while moving characters on screen
  5254.  3Ah    WORD    start of keyboard queue (next key at start+2 or 0042h if 0060h)
  5255.  3Ch    WORD    end of keyboard queue (next key inserted at end+2 or 0042h)
  5256.  3Eh    BYTE    number of characters in buffer
  5257.  3Fh    BYTE    keyboard mode flags (see #2897)
  5258.  40h    BYTE    Alt-digit-digit-digit accumulator
  5259.  41h    BYTE    Alt-digit-digit-digit count of digits (mod 3)
  5260.  42h 16 WORDs    keyboard buffer (circular queue)
  5261.  62h  8 DWORDs    Drive Interface Table pointers for floppies A:-D: + four others
  5262.         (0000h:0000h if pointer not in use)
  5263.  82h    BYTE    disk-error retry count (incremented on each disk error)
  5264.  83h  2    BYTEs    BIOS scratch space
  5265.  85h  8 BYTEs    current cylinder number for drives 0-7
  5266.         FFh = unknown
  5267.  8Dh    BYTE    BIOS scratch space
  5268.  8Eh    BYTE    hard error code for last disk access
  5269.         00h operation successful
  5270.  8Fh  8 BYTEs    save area for disk DSR parameters
  5271.  97h  6 BYTEs    current drive status
  5272.  9Dh    BYTE    retry error status
  5273.  9Eh    BYTE    BIOS scratch space
  5274.  9Fh  7 BYTEs    ???
  5275.  A6h  2    WORDs    INT 47 save area for SS,SP
  5276.  AAh  2    WORDs    INT 46 save area for SS,SP
  5277.  AEh  2    WORDs    INT 43 save area for SS,SP
  5278.  B2h  2    WORDs    save area for SS,SP to be restored by common intr. exit routine
  5279.  B6h 24 WORDs    stack for INT 47
  5280.  E6h 24 WORDs    stack for INT 46
  5281. 116h 17 WORDs    stack for INT 43
  5282. 13Ah  6 BYTEs    system date and time (hundredths, seconds, minutes, hours, and
  5283.           WORD days since 1/1/1980)
  5284. Note:    timing event 1 is the disk I/O timeout, event 2 is the floppy disk
  5285.       motor timeout, event 3 is the floppy disk motor spin-up time, and
  5286.       event 4 is used to turn off the speaker after a delay
  5287.  
  5288. Bitfields for TI Professional PC cursor size and type:
  5289. Bit(s)    Description    (Table 2896)
  5290.  15    reserved (0)
  5291.  14-13    cursor type
  5292.     00 nonblinking
  5293.     01 off
  5294.     10 slow blink
  5295.     11 fast blink
  5296.  12-8    starting scan line (0-11)
  5297.  7-5    reserved (0)
  5298.  4-0    ending scan line (0-11)
  5299. SeeAlso: #2895
  5300.  
  5301. Bitfields for TI Professional PC keyboard mode flags:
  5302. Bit(s)    Description    (Table 2897)
  5303.  7    CapsLock was ON at last keypress
  5304.  6-4    reserved (0)
  5305.  3    repeat key
  5306.  2    Shift was down at last keypress
  5307.  1    Alt was down at last keypress
  5308.  0    Ctrl was down at last keypress
  5309. SeeAlso: #2895
  5310.  
  5311. Bitfields for TI Professional System Configuration Word:
  5312. Bit(s)    Description    (Table 2898)
  5313.  0    drive A: installed
  5314.  1    drive B: installed
  5315.  2    drive C: installed
  5316.  3    drive D: installed
  5317.  4    drive A: is 80-track
  5318.  5    drive A: is double-sided
  5319.  6    60-Hz (USA,etc.) system instead of 50-Hz (Europe)
  5320.  7    hard disk installed
  5321.  8    serial port 1 installed
  5322.  9    serial port 2 installed
  5323.  10    serial port 3 installed
  5324.  11    serial port 4 installed
  5325.  14-12    installed graphics planes
  5326.     000 none
  5327.     001 plane A
  5328.     111 planes A, B, and C
  5329.  15    clock installed
  5330. SeeAlso: #2895
  5331. --------b-60---------------------------------
  5332. INT 60 - Atari Portfolio - USER INTERFACE FUNCTIONS
  5333. Desc:    supplies a number of subfunctions which perform such functions as
  5334.       drawing boxes and menus, and provide input line editing
  5335. SeeAlso: INT 61/AH=00h"Atari",INT 61"EXTENDED BIOS"
  5336. --------V-60---------------------------------
  5337. INT 60 - Nabbit v2.0 - (NOT A VECTOR!) - INSTALLATION CHECK
  5338. Program: Nabbit is a shareware resident screen data grabber by RSE Inc.
  5339. Range:    INT 60 to INT 66, selected by searching for first free vector
  5340. Note:    the Nabbit installation check consists of testing whether the
  5341.       interrupt vector points at the ASCIZ signature string "iG"
  5342.       (69h 47h 00h)
  5343. --------V-60---------------------------------
  5344. INT 60 - ATI M64VBE.COM - INSTALLATION SIGNATURE
  5345. Program: M64VBE is a VESA VBE 2.0 driver TSR for ATI's Mach64 video chip
  5346. Range:    INT 60 to INT 66, selected by searching for first free vector
  5347. Note:    the installation check is to scan for an interrupt with the ASCIZ
  5348.       signature "M64VBE" three bytes past the interrupt handler
  5349. SeeAlso: INT 10/AX=4FDDh"M64VBE",INT 10/AX=4FFFh/BX=364Dh"M64VBE"
  5350. --------V-60---------------------------------
  5351. INT 60 U - Buffit v3.0 - (NOT A VECTOR!) - INSTALLATION CHECK
  5352. Program: Buffit is a shareware scrollback utility by D.T. Hamilton
  5353. Range:    INT 60 to INT 6F, selected by searching for first free vector
  5354. Notes:    the Buffit installation check consists of testing whether the
  5355.       interrupt vector points at the ASCII signature "Buffit  "
  5356.     there is a private entry point (see #2899) immediately following the
  5357.       signature string, i.e. eight bytes beyond the address pointed at
  5358.       by the interrupt vector
  5359.  
  5360. (Table 2899)
  5361. Call Buffit private entry point with:
  5362.     AH = function
  5363.         00h get information and hotkey state
  5364.         01h get information and toggle hotkey state
  5365. Return: AH = new hotkey state (00h enabled, 01h disabled)
  5366.     AL = hotkey scan code (see #0005)
  5367.     BH = hotkey shift states
  5368.     BL = ??? (01h)
  5369.     CX = segment of resident code
  5370.     DH = interrupt number used for signature pointer
  5371.     DL = ??? (00h)
  5372.     SI = INT 09 handler offset
  5373.     DI = INT 21 handler offset
  5374. Index:    hotkeys;Buffit
  5375. --------r-60---------------------------------
  5376. INT 60 - PC-IPC API
  5377.     STACK:    DWORD    pointer to parameter block (see #2900)
  5378. Return: STACK:    unchanged
  5379. Program: PC-IPC is a shareware TSR by Donnelly Software Engineering which
  5380.       allows communication between independent programs
  5381. Range:    INT 00 to INT FF, selected by commandline switch
  5382.  
  5383. Format of PC-IPC parameter block:
  5384. Offset    Size    Description    (Table 2900)
  5385.  00h    WORD    caller's ID
  5386.  02h    WORD    to ID
  5387.  04h    WORD    command code (see #2901)
  5388.  06h    WORD    returned status (see #2902)
  5389.  08h    WORD    returned error code (see #2903)
  5390.  0Ah    WORD    size of data
  5391.  0Ch    DWORD    pointer to data buffer
  5392.  
  5393. (Table 2901)
  5394. Values for PC-IPC command code:
  5395.  01h "IPC_CMND_INQUIRE"     inquire current status
  5396.     set status field, writes WORD to data buffer containing free
  5397.       message space in bytes, and sets the "size" field to the
  5398.       number of messages waiting
  5399.  02h "IPC_CMND_ENABLE"    reenable PC-IPC
  5400.     ignored unless called with the same ID that disabled PC-IPC
  5401.  03h "IPC_CMND_DISABLE" disable PC-IPC
  5402.  04h "IPC_CMND_INSTALL" reset PC-IPC
  5403.  06h "IPC_CMND_RDATA"    read data
  5404.     returns first message in data buffer, sets "size" to message length
  5405.       and "to ID" field to sender's ID
  5406.     if no messages available, bit 4 of status is cleared and "size" is
  5407.       set to zero
  5408.  07h "IPC_CMND_SDATA"    send data
  5409.  08h "IPC_CMND_REQID"    require user ID
  5410.     create a new recognized ID and return in "caller's ID" field
  5411.  09h "IPC_CMND_DELID"    cancel user ID
  5412.     delete caller's ID from pool of recognized IDs
  5413.  0Ah "IPC_CMND_RDATAW"    read data, wait if no messages available
  5414.  0Bh "IPC_CMND_VERS"    get PC-IPC version
  5415.     string representing version returned in data buffer, "size" field
  5416.       set to length of string
  5417.  
  5418. Bitfields for returned status:
  5419. Bit(s)    Description    (Table 2902)
  5420.  0    unused
  5421.  1    IPC enabled
  5422.  2    IPC installed
  5423.  3    error
  5424.  4    message(s) available
  5425.  
  5426. (Table 2903)
  5427. Values for PC-IPC error code:
  5428.  00h    no error
  5429.  01h    invalid command or parameter
  5430.  02h    only process 0 can install/reset IPC
  5431.  03h    process can not install/reset IPC
  5432.  04h    IPC is not enabled
  5433.  05h    process can not disable IPC
  5434.  06h    invalid destination process ID
  5435.  07h    invalid sending process ID
  5436.  08h    invalid data destination
  5437.  09h    no more process IDs available
  5438.  0Ah    can not relinquish that process ID
  5439.  0Bh    message space is full
  5440.  0Ch    IPC is not installed
  5441. --------R-60---------------------------------
  5442. INT 60 - Tangram Arbiter - API
  5443. Desc:    Arbiter makes a PC disk look like a slow disk over an SNA link to an
  5444.       IBM mainframe
  5445. Range:    INT 60h to INT 66h, selected by configuration parameter
  5446. Notes:    identified by string "@ARB_API" immediately following a short jump at
  5447.       the interrupt handler address
  5448. --------N-60---------------------------------
  5449. INT 60 - Excelan LAN Workplace for DOS 3.5 - API
  5450.     ES:BX -> request packet (see #2904)
  5451. Return: request packet updated
  5452. Notes:    this interrupt is also supported by Beame&Whiteside's BWLWP35 shim,
  5453.       which was used in creating this description
  5454.     the installation check consists of testing for the WORD 4142h ('AB')
  5455.       immediately preceding the interrupt handler
  5456. BUG:    because BWLWP35 range-checks only the low byte of the function number,
  5457.       and has a fencepost error even in that test, functions 000Bh and
  5458.       XX01h-XX0Bh (XX nonzero) branch to random locations
  5459. SeeAlso: INT 2F/AX=7A40h
  5460.  
  5461. Format of Excelan request packet:
  5462. Offset    Size    Description    (Table 2904)
  5463.  00h 12 BYTEs    ???
  5464.  0Ch    WORD    (ret) error code (see #2905)
  5465.  0Eh    DWORD    -> FAR function for ???
  5466.  12h    WORD    function number
  5467.         0001h ???
  5468.         0002h NOP
  5469.         0003h NOP
  5470.         0004h NOP
  5471.         0005h ???
  5472.         0006h get ??? record
  5473.         0007h NOP
  5474.         0008h reset ???
  5475.         0009h NOP
  5476.         000Ah set ???
  5477.     ???
  5478. ---function 01h---
  5479.  20h    BYTE    (call) subfunction (32h-3Bh)
  5480.         3Bh non-blocking I/O request (will be tested every clock tick)
  5481.  21h    BYTE    (ret) error code
  5482.         00h successful
  5483.         09h invalid connection number
  5484.         2Ah bad connection type
  5485.         45h ???
  5486. ---function 01h, subfunction 32h---
  5487.  3Ah    WORD    (call) connection type (01h stream, 02h datagram)
  5488. ---function 01h, subfunction 34h---
  5489.  26h    WORD    (call) ???
  5490.  28h    WORD    (call) ???
  5491.  2Ah    WORD    (call) ???
  5492. ---function 01h, subfunction 35h---
  5493.  1Ah    WORD    (call) connection number???
  5494.  26h    WORD    (ret) ???
  5495. ---function 01h, subfunction 36h---
  5496.  1Ah    WORD    (call) connection number???
  5497.  38h    WORD    ???
  5498. ---function 01h, subfunction 37h---
  5499.  24h    WORD    (ret) ???
  5500.  26h    WORD    (ret) ???
  5501. ---function 01h, subfunction 38h---
  5502.  1Ah    WORD    (call) connection number???
  5503. ---function 01h, subfunction 3Ah---
  5504.  22h    WORD    (call) ???
  5505.         667Eh ???
  5506.         667Fh ???
  5507.  24h    BYTE    (call 667Eh) ???
  5508.  24h    WORD    (return 667Fh) ???
  5509. ---function 01h, subfunction 3Bh---
  5510.  0Eh    DWORD    (call) -> function to invoke for I/O or 0000h:0000h
  5511.         function called with AX = 0000h
  5512.                      STACK: DWORD -> request packet
  5513.                         WORD 0000h
  5514.             should return STACK unchanged
  5515.  1Ah    WORD    (call) connection number???
  5516.  21h    BYTE    (ret) set to 01h when I/O becomes possible
  5517.  22h    BYTE    (call) direction (00h write, 01h read)
  5518.  34h    DWORD    (ret) -> next pending request packet
  5519. ---function 05h---
  5520.  1Eh    WORD    (call) ???
  5521.  20h    WORD    (call) ???
  5522.  34h    DWORD    (call) -> ???
  5523. ---function 06h---
  5524.  16h    DWORD    (call) -> buffer for ??? record (see #2906)
  5525.  1Ah    WORD    (call) number of bytes to copy
  5526.  22h    WORD    (ret) number of bytes transferred
  5527. ---function 08h---
  5528.  14h    WORD    (ret) ??? (0001h)
  5529. ---function 0Ah---
  5530.  16h    DWORD    (call) -> WORD ???
  5531.  1Ch    WORD    (call) must be 000Ah for BWLWP35
  5532.  
  5533. (Table 2905)
  5534. Values for Excelan error code:
  5535.  0000h    successful
  5536.  002Dh    invalid function
  5537.  0050h    ???
  5538.  
  5539. Format of ??? record:
  5540. Offset    Size    Description    (Table 2906)
  5541.  00h    WORD    offset of ???
  5542.  02h  4 BYTEs    ???
  5543.  06h    DWORD    IP address (big-endian)
  5544.  0Ah  6 BYTEs    physical address (big-endian)
  5545.     ???
  5546. --------N-60---------------------------------
  5547. INT 60 - TCPDRV 2.01 - TCP/IP Application Binary Interface (ABI)
  5548. Note:    The handler for the interrupt will start with a 2-byte NEAR jump
  5549.       instruction, followed by the ASCIZ signature string "TCP DRVR".
  5550.     To find the interrupt being used by the driver, an application
  5551.       should scan through interrupt vectors 60h to 7Fh until it finds
  5552.       one with the "TCP DRVR" string.
  5553.     This specification is being proposed by Peter R. Tattam from the
  5554.       University of Tasmania.
  5555. Index:    installation check;TCPDRV
  5556. --------G-60---------------------------------
  5557. INT 60 U - INTRSPY/CMDSPY v1.0 only - API
  5558. Program: INTRSPY is a script-driven debugger included with the book
  5559.       _Undocumented_DOS_.
  5560. Notes:    INTRSPY will hook the first available interrupt in the range 60h-67h.
  5561.     The installation check is to
  5562.       a) determine that the handler is an IRET instruction
  5563.       b) the signature 0Dh "INTRSPY vN.NN" immediately precedes the handler
  5564.     If INTRSPY is installed, the DWORD immediately after the IRET stores
  5565.       its entry point (see #2907)
  5566.     INTRSPY v2.0 (included with the second edition of the book) no longer
  5567.       supports this API
  5568. Index:    installation check;INTRSPY
  5569.  
  5570. (Table 2907)
  5571. Call INTRSPY v1.0 entry point with:
  5572.     AH = function
  5573.         00h ???
  5574.         01h set current directory (for use in reporting)
  5575.         ES:DI -> counted string containing directory name (max 79 char)
  5576.         02h set name of script file
  5577.         ES:DI -> counted string containing file name (max 79 chars)
  5578.         03h set script arguments
  5579.         ES:DI -> counted string containing arguments (max 79 chars)
  5580.         04h get directory set with function 01h
  5581.         ES:DI -> 80-byte buffer for directory name
  5582.         05h get name of script file
  5583.         ES:DI -> 80-byte buffer for script filename
  5584.         06h get script arguments
  5585.         ES:DI -> 80-byte buffer for script arguments
  5586.         07h get ???
  5587.         CL = 00h-15h specifies what to get
  5588.         ES:DI -> WORD to be set with desired value on return
  5589.         08h get ???
  5590.         ES:DI -> WORD to be set with returned value
  5591.         09h get ???
  5592.         ES:DI -> WORD to be set with returned value
  5593.         0Bh store code for interrupt handler???
  5594.         ES:DI -> data
  5595.         CX = number of bytes
  5596.         0Ch ???
  5597.         ES:DI -> ???
  5598.         0Dh get ???
  5599.         ES:DI -> BYTE to be set with returned value
  5600.         0Eh set ??? flag
  5601.         0Fh clear ??? flag
  5602.         10h ???
  5603.         Return: AL = 04h or 05h if failed
  5604.         11h ???
  5605.         Return: AL = 05h if failed
  5606.         12h get ???
  5607.         ES:DI -> buffer
  5608.         Return: CX = number of bytes returned in buffer
  5609.         13h ???
  5610. Return: AH = 00h
  5611.     AL = status
  5612.         00h successful
  5613.         01h invalid function
  5614.         02h ???
  5615.         03h ???
  5616.         04h ???
  5617.         05h ???
  5618. --------u-60---------------------------------
  5619. INT 60 U - PC/370 v4.2 - ???
  5620.     ???
  5621. Return: ???
  5622. Program: PC/370 is an IBM 370 emulator by Donald S. Higgins
  5623. Range:    INT 00 to INT FF, selected by patching the executable
  5624. Note:    the documentation includes instructions for patching the system for
  5625.       another interrupt
  5626. SeeAlso: INT 2F/AX=7F24h,INT DC"PC/370"
  5627. --------r-60---------------------------------
  5628. INT 60 - JPI TopSPEED Modula-2 v1 - PROCEDURE ENTRY TRAP
  5629. SeeAlso: INT 61"JPI"
  5630. --------N-60---------------------------------
  5631. INT 60 - FTP Packet Driver - PC/TCP Packet Driver Specification
  5632. Range:    INT 20 to INT FF
  5633. Notes:    The handler for the interrupt will start with a 3-byte jump
  5634.       instruction, followed by the ASCIZ string "PKT DRVR" (the
  5635.       terminating NUL is significant).
  5636.     To find the interrupt being used by the driver, an application should
  5637.       scan through interrupt vectors 20h to FFh (60h through 80h for
  5638.       v1.09- of the specification) until it finds one with the "PKT DRVR"
  5639.       string.
  5640.     AH values of 80h to FFh have been reserved for user-defined additions.
  5641. --------I-60---------------------------------
  5642. INT 60 u - 3270-PC CONTROL PROGRAM - ???
  5643. --------b-60----DI0100-----------------------
  5644. INT 60 u - HP 95LX System Manager - WAIT FOR EVENT
  5645.     DI = 0100h
  5646.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  5647.         DWORD    pointer to event record (see #2909)
  5648. Return: event record filled
  5649.     STACK unchanged
  5650. Note:    this call will timeout after about 500ms
  5651. SeeAlso: INT 15/AX=4DD4h,INT 60/DI=0101h,INT 61"HP 95LX",INT 62"HP 95LX"
  5652.  
  5653. (Table 2908)
  5654. Values for HP 95LX event type:
  5655.  00h    no events
  5656.  01h    keystroke available
  5657.  02h    Ctrl-Break
  5658.  03h    reactivation (always follows deactivation event)
  5659.  04h    about to deactivate (sleep)
  5660.     next get-event call will not return until reactivated
  5661.  05h    forced application termination
  5662.  06h    1-2-3 bridge service request (only given to 1-2-3)
  5663.  07h    request to grow
  5664.  08h    request to shrink
  5665.  09h    application's alarm expired
  5666.  0Ah    daily chance to set an alarm
  5667.  0Bh    system date or time has been changed
  5668.  
  5669. Format of HP 95LX event record:
  5670. Offset    Size    Description    (Table 2909)
  5671.  00h    WORD    event type (see #2908)
  5672.  02h    WORD    ASCII code page 850 translation of keystroke
  5673.         or grow/shrink amount in paragraphs or 0000h if error
  5674.         or alarm expiration data
  5675.  04h    BYTE    scan code from BIOS
  5676.  05h    BYTE    shift key states at time keystroke is retrieved
  5677.  06h    WORD    LICS translation of keystroke
  5678.  08h    BYTE    function key number (1-2-3 only)
  5679.  09h    DWORD    pointer to 1-2-3 bridge record (see #2911)
  5680.         or pointer to time change structure (see #2910)
  5681. Note:    if the System Manager is awaiting the conclusion of a bridge service
  5682.       or grow/shrink call and the event type field is set to FFFFh on
  5683.       entry, the SysMgr will resume
  5684.  
  5685. Format of HP 95LX time change structure:
  5686. Offset    Size    Description    (Table 2910)
  5687.  00h    WORD    old year
  5688.  02h    BYTE    old month
  5689.  03h    BYTE    old date
  5690.  04h    BYTE    old day
  5691.  05h    BYTE    old hour
  5692.  06h    BYTE    old minute
  5693.  07h    BYTE    old second
  5694.  08h    BYTE    old hundredth of a second
  5695.  09h  9 BYTEs    new time in same format as old time
  5696. --------b-60----DI0101-----------------------
  5697. INT 60 u - HP 95LX System Manager - CHECK FOR EVENT
  5698.     DI = 0101h
  5699.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  5700.         DWORD pointer to event record (INT 60/DI=0100h)
  5701. Return: event record filled
  5702.     STACK unchanged
  5703. Note:    this call returns immediately if no event is available
  5704. SeeAlso: INT 60/DI=0100h
  5705. --------b-60----DI0102-----------------------
  5706. INT 60 u - HP 95LX System Manager - "SH_STATUS"
  5707.     DI = 0102h
  5708.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  5709. Return: ???
  5710.     STACK unchanged
  5711. --------b-60----DI0104-----------------------
  5712. INT 60 u - HP 95LX System Manager - LOTUS 1-2-3 BRIDGE SERVICES
  5713.     DI = 0104h
  5714.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  5715.         DWORD pointer to bridge record (see #2911)
  5716. Return: ???
  5717.     STACK unchanged
  5718.  
  5719. Format of HP 95LX bridge record:
  5720. Offset    Size    Description    (Table 2911)
  5721.  00h    WORD    function code (see #2912)
  5722.  02h    WORD    return code from 1-2-3
  5723.  04h 16 BYTEs    ASCII range name
  5724.  14h    WORD    start column of range
  5725.  16h    WORD    start row of range
  5726.  18h    WORD    end column of range
  5727.  1Ah    WORD    end row of range
  5728.  1Ch    WORD    order in which data is placed in buffer
  5729.  1Eh    WORD    buffer size
  5730.  20h    WORD    offset within bridge record's segment of buffer for cell data
  5731.  
  5732. (Table 2912)
  5733. Values for HP 95LX function code:
  5734.  00h    test
  5735.  01h    get range
  5736.  02h    "GETRANGE_ADDR"
  5737.  03h    "SETRANGE_ADDR"
  5738.  04h    "GETRANGE_DATA"
  5739.  05h    "SETRANGE_DATA"
  5740.  06h    recalculate
  5741.  07h    get cursor
  5742.  08h    set cursor
  5743.  09h    redisplay
  5744.  0Ah    cell type
  5745.  0Bh    "CALCTYPE"
  5746. --------b-60----DI0105-----------------------
  5747. INT 60 u - HP 95LX System Manager - FLUSH KEYBOARD BUFFER
  5748.     DI = 0105h
  5749.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  5750. Return: ???
  5751.     STACK unchanged
  5752. --------b-60----DI0106-----------------------
  5753. INT 60 u - HP 95LX System Manager - YIELD CPU
  5754.     DI = 0106h
  5755.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  5756.         DWORD pointer to ???
  5757. Return: ???
  5758.     STACK unchanged
  5759. SeeAlso: INT 15/AX=1000h,INT 2F/AX=1680h
  5760. --------b-60----DI0107-----------------------
  5761. INT 60 u - HP 95LX System Manager - "NO_FINI" - REFUSE TERMINATION REQUEST
  5762.     DI = 0107h
  5763.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  5764.         DWORD pointer to ???
  5765. Return: ???
  5766.     STACK unchanged
  5767. SeeAlso: INT 15/AX=4DD4h,INT 61"HP 95LX",INT 62"HP 95LX"
  5768. --------b-60----DI0200-----------------------
  5769. INT 60 u - HP 95LX System Manager - SETUP MENU
  5770.     DI = 0200h
  5771.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  5772.         DWORD    pointer to menu data (see #2913)
  5773.         DWORD    pointer to ???
  5774.         WORD    number of items on menu???
  5775.         WORD    ???
  5776.         DWORD    pointer to ???
  5777.         WORD    ???
  5778.         DWORD    pointer to ???
  5779. Return: ???
  5780.     STACK unchanged
  5781. SeeAlso: INT 15/AX=4DD4h,INT 60/DI=0201h,INT 60/DI=0203h,INT 60/DI=0205h
  5782.  
  5783. Format of HP 95LX menu data:
  5784. Offset    Size    Description    (Table 2913)
  5785.  00h 80 BYTEs    first line of menu text
  5786.  50h 80 BYTEs    second line of menu text
  5787.  A0h 80 BYTEs    third line of menu text
  5788.  F0h    WORD    number of keywords
  5789.  F2h    WORD    index of currently highlighted keyword or FFFFh
  5790.  F4h    WORD    single prompt on top line if nonzero
  5791.  F6h 20 BYTEs    which line each of 20 keywords is located on
  5792. 10Ah 20 BYTEs    offset of each of 20 keywords within its line
  5793. 11Eh 20 BYTEs    length of each of 20 keywords
  5794. 132h 20 BYTEs    first letter of each of 20 keywords
  5795. 146h 20 WORDs    offsets of long prompts for each of 20 keywords
  5796. --------b-60----DI0201-----------------------
  5797. INT 60 u - HP 95LX System Manager - DISPLAY OR REDISPLAY MENU
  5798.     DI = 0201h
  5799.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  5800.         DWORD    pointer to menu data (see #2913)
  5801. Return: ???
  5802.     STACK unchanged
  5803. SeeAlso: INT 60/DI=0200h,INT 60/DI=0202h,INT 60/DI=0206h
  5804. --------b-60----DI0202-----------------------
  5805. INT 60 u - HP 95LX System Manager - "MENU_ON" - ENABLE PROCESSING OF MENU
  5806.     DI = 0202h
  5807.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  5808.         DWORD    pointer to menu data (see #2913)
  5809. Return: ???
  5810.     STACK unchanged
  5811. SeeAlso: INT 60/DI=0200h,INT 60/DI=0201h,INT 60/DI=0203h
  5812. --------b-60----DI0203-----------------------
  5813. INT 60 u - HP 95LX System Manager - REMOVE MENU
  5814.     DI = 0203h
  5815.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  5816.         DWORD    pointer to menu data (see #2913)
  5817. Return: ???
  5818.     STACK unchanged
  5819. SeeAlso: INT 60/DI=0201h,INT 60/DI=0202h,INT 60/DI=0204h,INT 60/DI=0208h
  5820. --------b-60----DI0204-----------------------
  5821. INT 60 u - HP 95LX System Manager - LET SYSTEM MANAGER HANDLE MENU KEYSTROKE
  5822.     DI = 0204h
  5823.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  5824.         DWORD    pointer to menu data (see #2913)
  5825.         WORD    keystroke
  5826.         DWORD    pointer to WORD to receive selection number
  5827. Return: buffer for selection number filled with index of selected menu item or
  5828.       FFFFh if no final selection yet
  5829.     STACK unchanged
  5830. SeeAlso: INT 60/DI=0200h,INT 60/DI=0202h,INT 60/DI=0207h
  5831. --------b-60----DI0205-----------------------
  5832. INT 60 u - HP 95LX System Manager - INITIALIZE FILE SELECTION MENU
  5833.     DI = 0205h
  5834.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  5835.         DWORD    pointer to file menu structure (see #2914)
  5836.         DWORD    pointer to edit record (see #2917 at INT 60/DI=0400h)
  5837.         DWORD    pointer to wildcard filespec for initial file list
  5838.         WORD    row???
  5839.         WORD    column???
  5840. Return: ???
  5841.     STACK unchanged
  5842. SeeAlso: INT 60/DI=0200h,INT 60/DI=0206h,INT 60/DI=0208h
  5843.  
  5844. Format of HP 95LX file menu structure:
  5845. Offset    Size    Description    (Table 2914)
  5846.  00h    DWORD    pointer to ASCIZ base directory name
  5847.  04h    DWORD    pointer to ASCIZ file pattern (wildcard filespec)
  5848.  08h    DWORD    pointer to file list workspace, at least 1024 bytes (see #2915)
  5849.  0Ch    WORD    size of file list workspace in bytes
  5850.  0Eh    WORD    starting row (-3 is topmost, 0 is first non-"reserved" line)
  5851.  10h    WORD    starting column
  5852.  12h    WORD    number of lines
  5853.  14h    WORD    number of columns
  5854.  16h    WORD    number of files displayed on each line
  5855. ---the remaining fields are initialized by the System Manager---
  5856.  18h    WORD    0000h if first edit character, else multiline
  5857.  1Ah    WORD    number of files in file list
  5858.  1Ch    WORD    max files workspace has room for
  5859.  1Eh    WORD    file at top of list
  5860.  20h    WORD    index of file to highlight
  5861.  22h    WORD    index of file to unhighlight
  5862.  24h    WORD    current focus (01h FMENU, 02h EDIT)
  5863.  
  5864. Format of HP 95LX file list workspace entry:
  5865. Offset    Size    Description    (Table 2915)
  5866.  00h    BYTE    file attributes
  5867.  01h    WORD    file time (see #1317 at INT 21/AX=5700h)
  5868.  03h    WORD    file date (see #1318 at INT 21/AX=5700h)
  5869.  05h    DWORD    file size
  5870.  09h 13 BYTEs    ASCIZ filename
  5871. --------b-60----DI0206-----------------------
  5872. INT 60 u - HP 95LX System Manager - DISPLAY/REDISPLAY FILE SELECTION MENU
  5873.     DI = 0206h
  5874.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  5875.         DWORD    pointer to file menu structure (see #2914)
  5876.         DWORD    pointer to edit record (see #2917 at INT 60/DI=0400h)
  5877. Return: ???
  5878.     STACK unchanged
  5879. SeeAlso: INT 60/DI=0205h
  5880. --------b-60----DI0207-----------------------
  5881. INT 60 u - HP 95LX System Manager - LET SYSMGR PROCESS FILE SEL MENU KEYSTROKE
  5882.     DI = 0207h
  5883.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  5884.         DWORD    pointer to file menu structure (see #2914)
  5885.         DWORD    pointer to edit record (see #2917 at INT 60/DI=0400h)
  5886.         WORD    keystroke
  5887. Return: AX = status (see #2916)
  5888.     STACK unchanged
  5889. SeeAlso: INT 60/DI=0205h,INT 60/DI=0208h
  5890.  
  5891. (Table 2916)
  5892. Values for HP 95LX System Manager status:
  5893.  0000h    keystroke processed, call INT 60/DI=0206h to refresh menu
  5894.  0001h    redisplay application area before refreshing menu
  5895.  0002h    user confirmed selection, filename is in edit record's buffer
  5896.  0003h    user aborted menu
  5897.  FFFBh    bad filename
  5898.  FFFCh    bad directory
  5899.  FFFDh    bad drive
  5900.  FFFEh    unknown keystroke
  5901.  FFFFh    keystroke known but invalid in current context
  5902. --------b-60----DI0208-----------------------
  5903. INT 60 u - HP 95LX System Manager - REMOVE FILE SELECTION MENU
  5904.     DI = 0208h
  5905.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  5906.         DWORD    pointer to file menu structure (see #2914)
  5907.         DWORD    pointer to edit record (see #2917 at INT 60/DI=0400h)
  5908. Return: ???
  5909.     STACK unchanged
  5910. SeeAlso: INT 15/AX=4DD4h,INT 60/DI=0205h,INT 60/DI=0206h
  5911. --------b-60----DI0300-----------------------
  5912. INT 60 u - HP 95LX System Manager - DISPLAY STRING
  5913.     DI = 0300h
  5914.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  5915.         WORD    starting row (-3 is topmost, 0 is first user line)
  5916.         WORD    starting column
  5917.         DWORD    pointer to string
  5918.         WORD    length of string
  5919.         WORD    display style: 0000h normal, 0001h reverse video
  5920.         WORD    "OSTYLE"
  5921. Return: ???
  5922.     STACK unchanged
  5923. SeeAlso: INT 60/DI=0F03h,INT 60/DI=1005h
  5924. --------b-60----DI0301-----------------------
  5925. INT 60 u - HP 95LX System Manager - CLEAR PORTION OF SCREEN
  5926.     DI = 0301h
  5927.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  5928.         WORD    starting row (-3 is topmost, 0 is first user line)
  5929.         WORD    starting column
  5930.         WORD    number of rows
  5931.         WORD    number of columns
  5932. Return: ???
  5933.     STACK unchanged
  5934. SeeAlso: INT 60/DI=0302h,INT 60/DI=1005h
  5935. --------b-60----DI0302-----------------------
  5936. INT 60 u - HP 95LX System Manager - SCROLL PORTION OF SCREEN
  5937.     DI = 0302h
  5938.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  5939.         WORD    starting row???
  5940.         WORD    starting column???
  5941.         WORD    height of scroll region???
  5942.         WORD    width of scroll region???
  5943.         WORD    number of lines to scroll region???
  5944. Return: ???
  5945.     STACK unchanged
  5946. SeeAlso: INT 60/DI=0301h
  5947. --------b-60----DI0303-----------------------
  5948. INT 60 u - HP 95LX System Manager - SCREEN SERVICE "M_XCHG"
  5949.     DI = 0303h
  5950.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  5951.         WORD    ???
  5952.         WORD    ???
  5953.         WORD    ???
  5954.         WORD    ???
  5955.         DWORD    pointer to ???
  5956. Return: ???
  5957.     STACK unchanged
  5958. --------b-60----DI0304-----------------------
  5959. INT 60 u - HP 95LX System Manager - SCREEN SERVICE "M_CHRATTR"
  5960.     DI = 0304h
  5961.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  5962.         DWORD    pointer to ???
  5963.         WORD    ???
  5964. Return: ???
  5965.     STACK unchanged
  5966. --------b-60----DI0305-----------------------
  5967. INT 60 u - HP 95LX System Manager - SCREEN SERVICE "M_CHRRVRT"
  5968.     DI = 0305h
  5969.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  5970.         WORD    ???
  5971.         WORD    ???
  5972.         DWORD    pointer to ???
  5973.         WORD    ???
  5974. Return: ???
  5975.     STACK unchanged
  5976. --------b-60----DI0307-----------------------
  5977. INT 60 u - HP 95LX System Manager - SCREEN SERVICE "M_CHRINV"
  5978.     DI = 0307h
  5979.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  5980.         WORD    ???
  5981.         WORD    ???
  5982.         WORD    ???
  5983. Return: ???
  5984.     STACK unchanged
  5985. --------b-60----DI0308-----------------------
  5986. INT 60 u - HP 95LX System Manager - SCREEN SERVICE "M_ROWS_COLS"
  5987.     DI = 0308h
  5988.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  5989. Return: ???
  5990.     STACK unchanged
  5991. --------b-60----DI0309-----------------------
  5992. INT 60 u - HP 95LX System Manager - SET SCREEN (VIDEO???) MODE
  5993.     DI = 0309h
  5994.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  5995.         WORD    new mode
  5996. Return: ???
  5997.     STACK unchanged
  5998. --------b-60----DI030A-----------------------
  5999. INT 60 u - HP 95LX System Manager - GET SCREEN (VIDEO???) MODE
  6000.     DI = 030Ah
  6001.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  6002. Return: ???
  6003.     STACK unchanged
  6004. --------b-60----DI030B-----------------------
  6005. INT 60 u - HP 95LX System Manager - SET CURSOR POSITION
  6006.     DI = 030Bh
  6007.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  6008.         WORD    row (-3 is topmost, 0 is first non-reserved line)
  6009.         WORD    column
  6010. Return: ???
  6011.     STACK unchanged
  6012. Note:    cursor is hidden if the specified position is not on the physical
  6013.       display
  6014. SeeAlso: INT 10/AH=02h,INT 15/AX=4DD4h,INT 61"HP 95LX",INT 62"HP 95LX"
  6015. --------b-60----DI0400-----------------------
  6016. INT 60 u - HP 95LX System Manager - "EDIT_INIT"
  6017.     DI = 0400h
  6018.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  6019.         DWORD    pointer to edit record (see #2917)
  6020.         DWORD    pointer to string to be edited
  6021.         WORD    initial length of string being edited
  6022.         WORD    maximum length of edited string
  6023.         WORD    row of edit field
  6024.         WORD    leftmost column of edit field
  6025. Return: ???
  6026.     STACK unchanged
  6027.  
  6028. Format of HP 95LX edit record:
  6029. Offset    Size    Description    (Table 2917)
  6030.  00h    WORD    current length of edit buffer
  6031.  02h    BYTE    flag for special processing on first character
  6032.  03h    BYTE    flags
  6033.         bit 0: tab handling
  6034.  04h    WORD    editing in prompt window?
  6035.  06h    DWORD    pointer to top line of prompt window message
  6036.  0Ah    WORD    length of top line of prompt
  6037.  0Ch    DWORD    pointer to second line of prompt window message
  6038.  10h    WORD    length of second line of prompt
  6039.  12h 80 BYTEs    workspace for editing
  6040.  62h  2 WORDs    line array needed for multi-line editing
  6041.  66h 36 BYTEs    multi-line edit record (see #2918)
  6042.  8Ah    WORD    displayable columns
  6043.  
  6044. Format of HP 95LX multi-line edit record:
  6045. Offset    Size    Description    (Table 2918)
  6046.  00h    DWORD    pointer to user-supplied edit buffer
  6047.  04h    WORD    length of edit buffer
  6048.  06h    WORD    current cursor position
  6049.  08h    WORD    starting row of edit area (-3 is topmost, 0 is first user line)
  6050.  0Ah    WORD    starting column of edit area
  6051.  0Ch    WORD    height of edit area
  6052.  0Eh    WORD    width of edit area
  6053.  10h    WORD    current top row (-3 is topmost, 0 is first user line)
  6054.  12h    WORD    number of rows displayable
  6055.  14h    BYTE    cursor column
  6056.  15h    BYTE    01h if buffer has been modified
  6057.  16h    BYTE    first displayable column (ticker fields only)
  6058.  17h    BYTE    01h if wordwrap enabled, FFh if ticker field
  6059.  18h    DWORD    pointer to array of line starts (at least one bigger than edit
  6060.           area is high)
  6061.  1Ch    BYTE    currently marking?
  6062.  1Dh    BYTE    flag
  6063.  1Eh    WORD    offset of mark start
  6064.  20h    WORD    offset of mark end (inclusive)
  6065.  22h    WORD    displayable columns
  6066. --------b-60----DI0401-----------------------
  6067. INT 60 u - HP 95LX System Manager - EDIT ON TOP LINE
  6068.     DI = 0401h
  6069.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  6070.         DWORD    pointer to edit record (see #2917)
  6071.         DWORD    pointer to string to edit
  6072.         WORD    initial length of string being edited
  6073.         WORD    maximum length of edited string
  6074.         DWORD    pointer to first line of prompt
  6075.         WORD    length of first line
  6076.         DWORD    pointer to second line of prompt
  6077.         WORD    length of second line
  6078. Return: ???
  6079.     STACK unchanged
  6080. --------b-60----DI0402-----------------------
  6081. INT 60 u - HP 95LX System Manager - DISPLAY OR REDISPLAY EDIT FIELD
  6082.     DI = 0402h
  6083.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  6084.         DWORD    pointer to edit record (see #2917)
  6085. Return: ???
  6086.     STACK unchanged
  6087. --------b-60----DI0403-----------------------
  6088. INT 60 u - HP 95LX System Manager - LET SYSTEM MANAGER PROCESS EDITING KEYSTROK
  6089.     DI = 0403h
  6090.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  6091.         DWORD    pointer to edit record (see #2917)
  6092.         WORD    keystroke
  6093.         DWORD    pointer to WORD buffer for result code
  6094. Return: result code buffer filled with 0001h if editing complete
  6095.     STACK unchanged
  6096. --------b-60----DI0404-----------------------
  6097. INT 60 u - HP 95LX System Manager - "MDIT_INI"
  6098.     DI = 0404h
  6099.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  6100.         DWORD    pointer to ???
  6101.         WORD    ???
  6102.         WORD    ???
  6103.         WORD    ???
  6104.         WORD    ???
  6105.         DWORD    pointer to ???
  6106.         WORD    ???
  6107.         WORD    ???
  6108.         WORD    ???
  6109.         DWORD    pointer to ???
  6110. Return: ???
  6111.     STACK unchanged
  6112. --------b-60----DI0405-----------------------
  6113. INT 60 u - HP 95LX System Manager - "MDIT_DIS"
  6114.     DI = 0405h
  6115.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  6116.         DWORD    pointer to ???
  6117. Return: ???
  6118.     STACK unchanged
  6119. --------b-60----DI0406-----------------------
  6120. INT 60 u - HP 95LX System Manager - "MDIT_KEY"
  6121.     DI = 0406h
  6122.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  6123.         DWORD    pointer to ???
  6124.         WORD    ???
  6125. Return: ???
  6126.     STACK unchanged
  6127. --------b-60----DI0407-----------------------
  6128. INT 60 u - HP 95LX System Manager - "MDIT_FIL"
  6129.     DI = 0407h
  6130.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  6131.         DWORD    pointer to ???
  6132.         DWORD    pointer to ???
  6133. Return: ???
  6134.     STACK unchanged
  6135. --------b-60----DI0408-----------------------
  6136. INT 60 u - HP 95LX System Manager - "MDIT_MARK"
  6137.     DI = 0408h
  6138.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  6139.         DWORD    pointer to ???
  6140. Return: ???
  6141.     STACK unchanged
  6142. --------b-60----DI0409-----------------------
  6143. INT 60 u - HP 95LX System Manager - "MDIT_UNMARK"
  6144.     DI = 0409h
  6145.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  6146.         DWORD    pointer to ???
  6147. Return: ???
  6148.     STACK unchanged
  6149. --------b-60----DI040A-----------------------
  6150. INT 60 u - HP 95LX System Manager - "MDIT_CUTMARK"
  6151.     DI = 040Ah
  6152.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  6153.         DWORD    pointer to ???
  6154. Return: ???
  6155.     STACK unchanged
  6156. --------b-60----DI040B-----------------------
  6157. INT 60 u - HP 95LX System Manager - "MDIT_INS_STR"
  6158.     DI = 040Bh
  6159.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  6160.         DWORD    pointer to ???
  6161.         DWORD    pointer to ???
  6162.         WORD    ???
  6163. Return: ???
  6164.     STACK unchanged
  6165. SeeAlso: INT 15/AX=4DD4h,INT 61"HP 95LX",INT 62"HP 95LX"
  6166. --------b-60----DI0500-----------------------
  6167. INT 60 u - HP 95LX System Manager - OPEN FILE
  6168.     DI = 0500h
  6169.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  6170.         DWORD    pointer to file state record (see #2919)
  6171.         DWORD    pointer to filename
  6172.         WORD    length of filename
  6173.         WORD    ???
  6174.         WORD    suppress buffering if nonzero
  6175. Return: AX = status
  6176.     STACK unchanged
  6177. SeeAlso: INT 60/DI=0501h,INT 60/DI=0502h,INT 60/DI=0508h
  6178.  
  6179. Format of HP 95LX file state record:
  6180. Offset    Size    Description    (Table 2919)
  6181.  00h    WORD    DOS file handle
  6182.  02h    WORD    state flags (see #2920)
  6183.  04h    DWORD    current DOS physical file offset (FFFFFFFFh if unknown)
  6184.  08h    DWORD    DOS file offset of start of buffer
  6185.  0Ch    DWORD    effective file offset as seen by caller
  6186.  10h    WORD    number of bytes in file buffer
  6187. ---buffered I/O only---
  6188.  12h 512 BYTEs    file buffer
  6189.  
  6190. Bitfields for HP 95LX file state flags:
  6191. Bit(s)    Description    (Table 2920)
  6192.  0    buffer contents valid
  6193.  1    buffer is dirty and must be written
  6194.  2    unbuffered I/O
  6195.  3    file is a character device
  6196. SeeAlso: #2919
  6197. --------b-60----DI0501-----------------------
  6198. INT 60 u - HP 95LX System Manager - OPEN FILE IN READ-ONLY MODE
  6199.     DI = 0501h
  6200.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  6201.         DWORD    pointer to file state record (see #2919)
  6202.         DWORD    pointer to filename
  6203.         WORD    length of filename
  6204.         WORD    ???
  6205.         WORD    suppress buffering if nonzero
  6206. Return: AX = status
  6207.     STACK unchanged
  6208. SeeAlso: INT 60/DI=0500h
  6209. --------b-60----DI0502-----------------------
  6210. INT 60 u - HP 95LX System Manager - CREATE NEW FILE
  6211.     DI = 0502h
  6212.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  6213.         DWORD    pointer to file state record (see #2919)
  6214.         DWORD    pointer to filename
  6215.         WORD    length of filename
  6216.         WORD    ???
  6217.         WORD    suppress buffering if nonzero
  6218. Return: AX = status
  6219.     STACK unchanged
  6220. SeeAlso: INT 60/DI=0500h,INT 60/DI=0503h
  6221. --------b-60----DI0503-----------------------
  6222. INT 60 u - HP 95LX System Manager - CREATE OR TRUNCATE FILE
  6223.     DI = 0503h
  6224.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  6225.         DWORD    pointer to file state record (see #2919)
  6226.         DWORD    pointer to filename
  6227.         WORD    length of filename
  6228.         WORD    ???
  6229.         WORD    suppress buffering if nonzero
  6230. Return: AX = status
  6231.     STACK unchanged
  6232. SeeAlso: INT 60/DI=0502h
  6233. --------b-60----DI0504-----------------------
  6234. INT 60 u - HP 95LX System Manager - READ FROM FILE
  6235.     DI = 0504h
  6236.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  6237.         DWORD    pointer to file state record (see #2919)
  6238.         DWORD    pointer to data buffer
  6239.         WORD    number of bytes to read
  6240.         DWORD    pointer to WORD in which to return actual bytes read
  6241. Return: ???
  6242.     STACK unchanged
  6243. SeeAlso: INT 60/DI=0505h
  6244. --------b-60----DI0505-----------------------
  6245. INT 60 - HP 95LX System Manager - WRITE TO FILE
  6246.     DI = 0505h
  6247.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  6248.         DWORD    pointer to file state record (see #2919)
  6249.         DWORD    pointer to data
  6250.         WORD    length of data
  6251. Return: AX = status
  6252.     STACK unchanged
  6253. SeeAlso: INT 60/DI=0504h
  6254. --------b-60----DI0506-----------------------
  6255. INT 60 u - HP 95LX System Manager - SET FILE POSITION
  6256.     DI = 0506h
  6257.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  6258.         DWORD    pointer to file state record (see #2919)
  6259.         2 WORDs    ???
  6260. Return: ???
  6261.     STACK unchanged
  6262. SeeAlso: INT 60/DI=0507h
  6263. --------b-60----DI0507-----------------------
  6264. INT 60 u - HP 95LX System Manager - GET FILE POSITION
  6265.     DI = 0507h "M_TELL"
  6266.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  6267.         DWORD    pointer to file state record (see #2919)
  6268.         DWORD    pointer to DWORD buffer for file position???
  6269. Return: ???
  6270.     STACK unchanged
  6271. SeeAlso: INT 60/DI=0506h
  6272. --------b-60----DI0508-----------------------
  6273. INT 60 u - HP 95LX System Manager - CLOSE FILE
  6274.     DI = 0508h
  6275.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  6276.         DWORD    pointer to file state record (see #2919)
  6277. Return: ???
  6278.     STACK unchanged
  6279. SeeAlso: INT 60/DI=0500h
  6280. --------b-60----DI0509-----------------------
  6281. INT 60 u - HP 95LX System Manager - FILE SERVICE "M_SETPAT"
  6282.     DI = 0509h
  6283.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  6284.         DWORD    pointer to ???
  6285.         DWORD    pointer to ???
  6286.         WORD    ???
  6287.         WORD    ???
  6288. Return: ???
  6289.     STACK unchanged
  6290. --------b-60----DI050A-----------------------
  6291. INT 60 u - HP 95LX System Manager - FILE SERVICE "M_MATCH"
  6292.     DI = 050Ah
  6293.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  6294.         DWORD    pointer to ??? (see #2921)
  6295.         DWORD    pointer to ???
  6296. Return: ???
  6297.     STACK unchanged
  6298.  
  6299. Format of HP 95LX pattern match control block:
  6300. Offset    Size    Description    (Table 2921)
  6301.  00h 43 BYTEs    FindFirst data block (see #1278 at INT 21/AH=4Eh)
  6302.  2Bh 80 BYTEs    full path name
  6303.  7Bh    BYTE    offset of last component of filename
  6304.  7Ch    BYTE    DOS function number (4Eh or 4Fh)
  6305. --------b-60----DI050B-----------------------
  6306. INT 60 u - HP 95LX System Manager - IDENTIFY FILENAME REFERENT
  6307.     DI = 050Bh
  6308.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  6309.         DWORD    pointer to ???
  6310.         WORD    ???
  6311.         WORD    ???
  6312.         DWORD    pointer to ???
  6313. Return: ??? = result (see #2922)
  6314.     ???
  6315.     STACK unchanged
  6316.  
  6317. (Table 2922)
  6318. Values returned by HP 95LX System Manager:
  6319.  0000h    nonexistent
  6320.  0001h    file
  6321.  0002h    directory
  6322.  0003h    character device
  6323. --------b-60----DI050C-----------------------
  6324. INT 60 u - HP 95LX System Manager - DELETE FILE
  6325.     DI = 050Ch "M_DELETE"
  6326.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  6327.         DWORD    pointer to ???
  6328.         WORD    ???
  6329.         WORD    ???
  6330. Return: ???
  6331.     STACK unchanged
  6332. --------b-60----DI050D-----------------------
  6333. INT 60 u - HP 95LX System Manager - RENAME FILE
  6334.     DI = 050Dh
  6335.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  6336.         DWORD    pointer to ???
  6337.         WORD    ???
  6338.         WORD    ???
  6339.         DWORD    pointer to ???
  6340.         WORD    ???
  6341.         WORD    ???
  6342. Return: ???
  6343.     STACK unchanged
  6344. --------b-60----DI050E-----------------------
  6345. INT 60 u - HP 95LX System Manager - FILE SERVICE "M_GETDIR"
  6346.     DI = 050Eh
  6347.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  6348.         WORD    ???
  6349.         DWORD    pointer to ???
  6350.         DWORD    pointer to ???
  6351. Return: ???
  6352.     STACK unchanged
  6353. --------b-60----DI050F-----------------------
  6354. INT 60 u - HP 95LX System Manager - FILE SERVICE "M_SETDIR"
  6355.     DI = 050Fh
  6356.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  6357.         DWORD    pointer to ???
  6358.         WORD    ???
  6359. Return: ???
  6360.     STACK unchanged
  6361. --------b-60----DI0510-----------------------
  6362. INT 60 u - HP 95LX System Manager - FILE SERVICE "M_VOLUME"
  6363.     DI = 0510h
  6364.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  6365.         DWORD    pointer to ???
  6366.         DWORD    pointer to ???
  6367. Return: ???
  6368.     STACK unchanged
  6369. --------b-60----DI0511-----------------------
  6370. INT 60 u - HP 95LX System Manager - MAKE A SUBDIRECTORY
  6371.     DI = 0511h
  6372.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  6373.         DWORD    pointer to ???
  6374.         WORD    ???
  6375.         WORD    ???
  6376. Return: ???
  6377.     STACK unchanged
  6378. SeeAlso: INT 21/AH=39h,INT 60/DI=0512h
  6379. --------b-60----DI0512-----------------------
  6380. INT 60 u - HP 95LX System Manager - REMOVE A SUBDIRECTORY
  6381.     DI = 0512h
  6382.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  6383.         DWORD    pointer to ???
  6384.         WORD    ???
  6385.         WORD    ???
  6386. Return: ???
  6387.     STACK unchanged
  6388. SeeAlso: INT 21/AH=3Ah,INT 60/DI=0511h
  6389. --------b-60----DI0513-----------------------
  6390. INT 60 u - HP 95LX System Manager - GET DEFAULT DRIVE
  6391.     DI = 0513h
  6392.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  6393.         DWORD    pointer to ??? buffer for current drive
  6394. Return: ???
  6395.     STACK unchanged
  6396. SeeAlso: INT 21/AH=19h,INT 60/DI=0514h
  6397. --------b-60----DI0514-----------------------
  6398. INT 60 u - HP 95LX System Manager - SET DEFAULT DRIVE
  6399.     DI = 0514h
  6400.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  6401.         WORD    new drive
  6402. Return: ???
  6403.     STACK unchanged
  6404. SeeAlso: INT 21/AH=0Eh"DOS 1+",INT 60/DI=0513h
  6405. --------b-60----DI0515-----------------------
  6406. INT 60 u - HP 95LX System Manager - FILE SERVICE "M_FDATE"
  6407.     DI = 0515h
  6408.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  6409.         DWORD    pointer to ???
  6410.         DWORD    pointer to ???
  6411. Return: ???
  6412.     STACK unchanged
  6413. --------b-60----DI0516-----------------------
  6414. INT 60 u - HP 95LX System Manager - FILE SERVICE "M_GET_SYSDIR"
  6415.     DI = 0516h
  6416.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  6417.         DWORD    pointer to ???
  6418. Return: ???
  6419.     STACK unchanged
  6420. --------b-60----DI0517-----------------------
  6421. INT 60 u - HP 95LX System Manager - GET FILE ATTRIBUTES
  6422.     DI = 0517h
  6423.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  6424.         DWORD    pointer to ???
  6425.         WORD    ???
  6426.         WORD    ???
  6427.         DWORD    pointer to ??? buffer for file's attributes???
  6428. Return: ???
  6429.     STACK unchanged
  6430. SeeAlso: INT 21/AX=4300h,INT 60/DI=0518h
  6431. --------b-60----DI0518-----------------------
  6432. INT 60 u - HP 95LX System Manager - SET FILE ATTRIBUTES
  6433.     DI = 0518h
  6434.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  6435.         DWORD    pointer to ???
  6436.         WORD    ???
  6437.         WORD    ???
  6438.         WORD    new attributes???
  6439. Return: ???
  6440.     STACK unchanged
  6441. SeeAlso: INT 21/AX=4301h,INT 60/DI=0517h
  6442. --------b-60----DI0519-----------------------
  6443. INT 60 u - HP 95LX System Manager - FILE SERVICE "M_COMMON_OPEN"
  6444.     DI = 0519h
  6445.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  6446.         DWORD    pointer to ???
  6447.         DWORD    pointer to ???
  6448.         WORD    ???
  6449.         WORD    ???
  6450.         WORD    ???
  6451.         WORD    ???
  6452.         WORD    ???
  6453. Return: ???
  6454.     STACK unchanged
  6455. --------b-60----DI051A-----------------------
  6456. INT 60 u - HP 95LX System Manager - FILE SERVICE "M_COPYDT"
  6457.     DI = 051Ah
  6458.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  6459.         DWORD    pointer to ???
  6460.         DWORD    pointer to ???
  6461. Return: ???
  6462.     STACK unchanged
  6463. --------b-60----DI051B-----------------------
  6464. INT 60 u - HP 95LX System Manager - FILE SERVICE "M_GETFDT"
  6465.     DI = 051Bh
  6466.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  6467.         DWORD    pointer to ???
  6468.         DWORD    pointer to ???
  6469. Return: ???
  6470.     STACK unchanged
  6471. --------b-60----DI051C-----------------------
  6472. INT 60 u - HP 95LX System Manager - FILE SERVICE "M_PUTFDT"
  6473.     DI = 051Ch
  6474.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  6475.         DWORD    pointer to ???
  6476.         WORD    ???
  6477. Return: ???
  6478.     STACK unchanged
  6479. --------b-60----DI0600-----------------------
  6480. INT 60 u - HP 95LX System Manager - PROCESS INITIALIZING
  6481.     DI = 0600h
  6482.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  6483. Return: ???
  6484.     STACK unchanged
  6485. SeeAlso: INT 15/AX=4DD4h,INT 60/DI=0601h,INT 61"HP 95LX"
  6486. --------b-60----DI0601-----------------------
  6487. INT 60 u - HP 95LX System Manager - PROCESS TERMINATION
  6488.     DI = 0601h
  6489.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  6490. Return: never
  6491.     STACK unchanged
  6492. SeeAlso: INT 21/AH=4Ch,INT 2F/AX=1122h,INT 60/DI=0600h
  6493. --------b-60----DI0602-----------------------
  6494. INT 60 u - HP 95LX System Manager - "M_LOCK" - PREVENT TASK SWITCHES
  6495.     DI = 0602h
  6496.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  6497. Return: ???
  6498.     STACK unchanged
  6499. SeeAlso: INT 15/AX=101Bh,INT 2F/AX=1681h,INT 60/DI=0603h
  6500. --------b-60----DI0603-----------------------
  6501. INT 60 u - HP 95LX System Manager - "M_UNLOCK" - ALLOW TASK SWITCHES
  6502.     DI = 0603h
  6503.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  6504. Return: ???
  6505.     STACK unchanged
  6506. SeeAlso: INT 15/AX=101Ch,INT 2F/AX=1682h,INT 60/DI=0602h
  6507. --------b-60----DI0604-----------------------
  6508. INT 60 u - HP 95LX System Manager - "M_SPAWN"
  6509.     DI = 0604h
  6510.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  6511.         DWORD    pointer to ???
  6512.         WORD    ???
  6513.         WORD    ???
  6514.         DWORD    pointer to ???
  6515. Return: ???
  6516.     STACK unchanged
  6517. SeeAlso: INT 21/AH=4Bh
  6518. --------b-60----DI0605-----------------------
  6519. INT 60 u - HP 95LX System Manager - "M_APPCOUNT"
  6520.     DI = 0605h
  6521.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  6522. Return: ???
  6523.     STACK unchanged
  6524. --------b-60----DI0606-----------------------
  6525. INT 60 u - HP 95LX System Manager - "M_REBOOT"
  6526.     DI = 0606h
  6527.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  6528. Return: ???
  6529.     STACK unchanged
  6530. SeeAlso: INT 14/AH=17h"FOSSIL",INT 19
  6531. --------b-60----DI0607-----------------------
  6532. INT 60 u - HP 95LX System Manager - "M_SPAWNARG"
  6533.     DI = 0607h
  6534.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  6535.         DWORD    pointer to ???
  6536.         WORD    ???
  6537.         DWORD    pointer to ???
  6538.         WORD    ???
  6539. Return: ???
  6540.     STACK unchanged
  6541. --------b-60----DI0608-----------------------
  6542. INT 60 u - HP 95LX System Manager - "M_REG_APP_NAME"
  6543.     DI = 0608h
  6544.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  6545.         DWORD    pointer to ???
  6546. Return: ???
  6547.     STACK unchanged
  6548. --------b-60----DI0609-----------------------
  6549. INT 60 u - HP 95LX System Manager - "M_APP_NAME"
  6550.     DI = 0609h
  6551.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  6552.         DWORD    pointer to ???
  6553. Return: DX:AX -> ???
  6554.     STACK unchanged
  6555. SeeAlso: INT 15/AX=4DD4h,INT 61"HP 95LX",INT 62"HP 95LX"
  6556. --------b-60----DI0700-----------------------
  6557. INT 60 u - HP 95LX System Manager - OPEN CLIPBOARD
  6558.     DI = 0700h
  6559.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  6560. Return: ??? = error code (see #2923)
  6561.     ???
  6562.     STACK unchanged
  6563. SeeAlso: INT 60/DI=0701h,INT 60/DI=0702h
  6564.  
  6565. (Table 2923)
  6566. Values for HP 95LX error code:
  6567.  0000h    successful
  6568.  FFF8h    transfer request out of bounds
  6569.  FFF9h    no such representation
  6570.  FFFAh    no representation open
  6571.  FFFBh    a representation is already open
  6572.  FFFCh    representation already exists
  6573.  FFFDh    heap allocation failure
  6574.  FFFEh    clipboard not open
  6575.  FFFFh    clipboard access denied
  6576. --------b-60----DI0701-----------------------
  6577. INT 60 u - HP 95LX System Manager - CLOSE CLIPBOARD
  6578.     DI = 0701h
  6579.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  6580. Return: ???
  6581.     STACK unchanged
  6582. SeeAlso: INT 60/DI=0700h,INT 60/DI=0702h
  6583. --------b-60----DI0702-----------------------
  6584. INT 60 u - HP 95LX System Manager - RESET CLIPBOARD
  6585.     DI = 0702h
  6586.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  6587.         DWORD    pointer to ???
  6588. Return: ???
  6589.     STACK unchanged
  6590. SeeAlso: INT 60/DI=0700h
  6591. --------b-60----DI0704-----------------------
  6592. INT 60 u - HP 95LX System Manager - "M_NEW_REP" - START A NEW REPRESENTATION???
  6593.     DI = 0704h
  6594.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  6595.         DWORD    pointer to ???
  6596. Return: ???
  6597.     STACK unchanged
  6598. SeeAlso: INT 60/DI=0705h,INT 60/DI=0706h,INT 60/DI=0707h
  6599. --------b-60----DI0705-----------------------
  6600. INT 60 u - HP 95LX System Manager - CLIPBOARD SERVICE "M_FINI_REP"
  6601.     DI = 0705h
  6602.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  6603. Return: ???
  6604.     STACK unchanged
  6605. SeeAlso: INT 60/DI=0704h
  6606. --------b-60----DI0706-----------------------
  6607. INT 60 u - HP 95LX System Manager - CLIPBOARD SERVICE "M_REP_NAME"
  6608.     DI = 0706h
  6609.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  6610.         WORD    ???
  6611.         DWORD    pointer to ???
  6612.         DWORD    pointer to ???
  6613. Return: ???
  6614.     STACK unchanged
  6615. SeeAlso: INT 60/DI=0704h,INT 60/DI=0707h
  6616. --------b-60----DI0707-----------------------
  6617. INT 60 u - HP 95LX System Manager - CLIPBOARD SERVICE "M_REP_INDEX"
  6618.     DI = 0707h
  6619.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  6620.         DWORD    pointer to ???
  6621.         DWORD    pointer to ???
  6622.         DWORD    pointer to ???
  6623. Return: ???
  6624.     STACK unchanged
  6625. SeeAlso: INT 60/DI=0704h,INT 60/DI=0706h
  6626. --------b-60----DI0708-----------------------
  6627. INT 60 u - HP 95LX System Manager - WRITE TO CLIPBOARD
  6628.     DI = 0708h
  6629.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  6630.         DWORD    pointer to data to be written???
  6631.         WORD    length of data???
  6632. Return: ???
  6633.     STACK unchanged
  6634. SeeAlso: INT 60/DI=0709h
  6635. --------b-60----DI0709-----------------------
  6636. INT 60 u - HP 95LX System Manager - READ FROM CLIPBOARD
  6637.     DI = 0709h
  6638.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  6639.         WORD    ???
  6640.         WORD    ???
  6641.         DWORD    pointer to buffer for data???
  6642.         WORD    length of buffer???
  6643. Return: ???
  6644.     STACK unchanged
  6645. SeeAlso: INT 60/DI=0708h
  6646. --------b-60----DI0800-----------------------
  6647. INT 60 u - HP 95LX System Manager - BEEP
  6648.     DI = 0800h
  6649.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  6650. Return: ???
  6651.     STACK unchanged
  6652. SeeAlso: INT 60/DI=0801h,INT 60/DI=0802h,INT 60/DI=0803h
  6653. --------b-60----DI0801-----------------------
  6654. INT 60 u - HP 95LX System Manager - SOUND SERVICE "M_THUD"
  6655.     DI = 0801h
  6656.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  6657. Return: ???
  6658.     STACK unchanged
  6659. SeeAlso: INT 60/DI=0800h,INT 60/DI=0802h,INT 60/DI=0803h
  6660. --------b-60----DI0802-----------------------
  6661. INT 60 u - HP 95LX System Manager - MAKE A SOUND PATTERN
  6662.     DI = 0802h
  6663.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  6664.         WORD    pattern number (00h-06h)
  6665. Return: ???
  6666.     STACK unchanged
  6667. SeeAlso: INT 60/DI=0800h,INT 60/DI=0801h,INT 60/DI=0803h
  6668. --------b-60----DI0803-----------------------
  6669. INT 60 u - HP 95LX System Manager - TURN OFF SOUND
  6670.     DI = 0803h
  6671.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  6672. Return: ???
  6673.     STACK unchanged
  6674. SeeAlso: INT 60/DI=0800h,INT 60/DI=0801h,INT 60/DI=0802h
  6675. --------b-60----DI0900-----------------------
  6676. INT 60 - HP 95LX System Manager - ALLOCATE REGULAR MEMORY BLOCK
  6677.     DI = 0900h
  6678.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  6679.         WORD    size of block in bytes
  6680. Return: AX -> memory block
  6681.     STACK unchanged
  6682. Note:    System Manager-compliant applications are always small-model (64K code,
  6683.       64K data)
  6684. SeeAlso: INT 15/AX=4DD4h,INT 60/DI=0902h,INT 60/DI=0903h
  6685. --------b-60----DI0902-----------------------
  6686. INT 60 u - HP 95LX System Manager - FREE REGULAR MEMORY BLOCK
  6687.     DI = 0902h
  6688.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  6689.         WORD    offset of memory block???
  6690. Return: ???
  6691.     STACK unchanged
  6692. Note:    System Manager-compliant applications are always small-model (64K code,
  6693.       64K data)
  6694. SeeAlso: INT 60/DI=0900h,INT 60/DI=0904h
  6695. --------b-60----DI0903-----------------------
  6696. INT 60 u - HP 95LX System Manager - ALLOCATE LARGE MEMORY BLOCK
  6697.     DI = 0903h
  6698.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  6699.         WORD    size of block in bytes???
  6700. Return: AX -> memory block???
  6701.     STACK unchanged
  6702. SeeAlso: INT 60/DI=0900h,INT 60/DI=0904h
  6703. --------b-60----DI0904-----------------------
  6704. INT 60 u - HP 95LX System Manager - FREE LARGE MEMORY BLOCK
  6705.     DI = 0904h
  6706.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  6707.         WORD    segment of memory block???
  6708. Return: AX -> ???
  6709.     STACK unchanged
  6710. SeeAlso: INT 60/DI=0902h,INT 60/DI=0903h
  6711. --------b-60----DI0B00-----------------------
  6712. INT 60 u - HP 95LX System Manager - CLOCK/CALENDAR SERVICE "M_DTINFO"
  6713.     DI = 0B00h
  6714.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  6715.         DWORD    pointer to ???
  6716. Return: ???
  6717.     STACK unchanged
  6718. --------b-60----DI0B01-----------------------
  6719. INT 60 u - HP 95LX System Manager - CLOCK/CALENDAR SERVICE "M_GETDTM"
  6720.     DI = 0B01h
  6721.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  6722.         DWORD    pointer to ???
  6723. Return: ???
  6724.     STACK unchanged
  6725. --------b-60----DI0B02-----------------------
  6726. INT 60 u - HP 95LX System Manager - CLOCK/CALENDAR SERVICE "M_SETDTM"
  6727.     DI = 0B02h
  6728.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  6729.         DWORD    pointer to ???
  6730. Return: ???
  6731.     STACK unchanged
  6732. --------b-60----DI0B03-----------------------
  6733. INT 60 u - HP 95LX System Manager - CLOCK/CALENDAR SERVICE "M_XALARM"
  6734.     DI = 0B03h
  6735.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  6736.         WORD    ???
  6737. Return: ???
  6738.     STACK unchanged
  6739. --------b-60----DI0B04-----------------------
  6740. INT 60 u - HP 95LX System Manager - CLOCK/CALENDAR SERVICE "M_ALARM"
  6741.     DI = 0B04h
  6742.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  6743.         DWORD    pointer to alarm record??? (see #2924)
  6744.         WORD    ???
  6745. Return: ???
  6746.     STACK unchanged
  6747.  
  6748. Format of HP 95LX alarm record:
  6749. Offset    Size    Description    (Table 2924)
  6750.  00h    BYTE    hour
  6751.  01h    BYTE    minute
  6752.  02h    BYTE    second
  6753.  03h    BYTE    unused padding
  6754.  04h    WORD    rescheduling interval, in seconds
  6755.  06h    BYTE    are seconds significant?
  6756.  07h    BYTE    alarm sound
  6757.  08h 40 BYTEs    message displayed when alarm activates
  6758.  30h    BYTE    task ID of owner
  6759.  31h    BYTE    application's own use for sub-class
  6760.  32h  4 BYTEs    application's own use for private data
  6761. --------b-60----DI0B05-----------------------
  6762. INT 60 u - HP 95LX System Manager - CLOCK/CALENDAR SERVICE "M_START_SW"
  6763.     DI = 0B05h
  6764.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  6765.         DWORD    pointer to ???
  6766. Return: ???
  6767.     STACK unchanged
  6768. --------b-60----DI0B06-----------------------
  6769. INT 60 u - HP 95LX System Manager - CLOCK/CALENDAR SERVICE "M_GET_SW"
  6770.     DI = 0B06h
  6771.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  6772.         DWORD    pointer to ???
  6773.         DWORD    pointer to ???
  6774.         DWORD    pointer to ???
  6775. Return: ???
  6776.     STACK unchanged
  6777. --------b-60----DI0B07-----------------------
  6778. INT 60 u - HP 95LX System Manager - CLOCK/CALENDAR SERVICE "M_STOP_SW"
  6779.     DI = 0B07h
  6780.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  6781.         DWORD    pointer to ???
  6782. Return: ???
  6783.     STACK unchanged
  6784. --------b-60----DI0B08-----------------------
  6785. INT 60 u - HP 95LX System Manager - "M_TELLTIME" - DISPLAY TIMESTAMP
  6786.     DI = 0B08h
  6787.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  6788.         WORD    timestamp format (see #2925)
  6789.         WORD    row (-3 is topmost, 0 is first non-reserved line)
  6790.         WORD    column
  6791. Return: ???
  6792.     STACK unchanged
  6793.  
  6794. Bitfields for HP 95LX timestamp format:
  6795. Bit(s)    Description    (Table 2925)
  6796.  1-0    timestamp components
  6797.     00 date only
  6798.     01 time only
  6799.     10 date and time
  6800.     11 day and date
  6801.  4    supply am/pm
  6802.  5    supply seconds
  6803.  6    show year
  6804.  7    four-digit year
  6805. --------b-60----DI0B09-----------------------
  6806. INT 60 u - HP 95LX System Manager - CLOCK/CALENDAR SERVICE "M_GET_SETTINGS"
  6807.     DI = 0B09h
  6808.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  6809.         DWORD    pointer to ??? (see #2926)
  6810.         DWORD    pointer to ???
  6811. Return: ???
  6812.     STACK unchanged
  6813. SeeAlso: INT 60/DI=0B0Ah,INT 60/DI=0B0Fh
  6814.  
  6815. Format of HP 95LX system settings:
  6816. Offset    Size    Description    (Table 2926)
  6817.  00h    WORD    country code
  6818.  02h    WORD    speaker volume (00h-03h or FFh for off)
  6819.  04h    WORD    contrast level (00h-0Fh)
  6820.  06h    WORD    week start (00h Sunday, 01h Monday)
  6821.  08h    WORD    punctuation format (see #2927)
  6822.  0Ah    WORD    two-character language code (only 5355h = "US" byte-swapped)
  6823.  0Ch    WORD    current date format (see #2928)
  6824.  0Eh    WORD    current time format (see #2929)
  6825.  10h    WORD    collating sequence
  6826.         00h numbers first, 01h letters first, 02h ASCII
  6827.  12h 80 BYTEs    name of picture file
  6828.  62h 30 BYTEs    name
  6829.  80h 30 BYTEs    title
  6830.  9Eh 28 BYTEs    company name
  6831.  BAh    WORD    number of languages
  6832.  BCh  6 BYTEs    available languages
  6833.  C2h 66 BYTEs    language menu
  6834. 104h  2 BYTEs    ASCIZ date separator
  6835. 106h  2 BYTEs    ASCIZ time separator
  6836. 108h    BYTE    date order
  6837. 109h    BYTE    use 24 hour time?
  6838. 10Ah 16 BYTEs    currency string
  6839. 11Ah    WORD    currency string position (00h prefix, 01h suffix)
  6840. 11Ch    WORD    keyboard (see #2930)
  6841. 11Eh    WORD    printer baud rate
  6842.         00h 300, 01h 1200, 02h 2400, 03h 4800, 04h 9600, 05h 19200
  6843. 120h    WORD    printer driver code
  6844.         00h Epson FX80, 01h HP Laserjet, 02h IBM ProPrinter
  6845. 122h    WORD    printer interface (00h COM1, 01h COM2, 02h IR, 03h LPT1)
  6846. 124h    WORD    system manager interrupt (60h by default)
  6847. 126h    WORD    code page (01h CP850, 02h CP437)
  6848. 128h    WORD    active exit key
  6849. 12Ah    WORD    active menu key
  6850. 12Ch    WORD    active CHAR key toggle
  6851. 12Eh  6 BYTEs    alarm
  6852.  
  6853. (Table 2927)
  6854. Values for HP 95LX punctuation format:
  6855.  code    decimal arg    thousands
  6856.  00h    .    ,    ,
  6857.  01h    ,    .    .
  6858.  02h    .    ;    ;
  6859.  03h    ,    ;    .
  6860.  04h    .    ,    " "
  6861.  05h    ,    .    " "
  6862.  06h    .    ;    " "
  6863.  07h    ,    ;    " "
  6864.  
  6865. (Table 2928)
  6866. Values for HP 95LX current date format:
  6867.  00h    dd-mmm-yy
  6868.  01h    dd-mmm
  6869.  02h    mmm-yy
  6870.  03h    mm/dd/yy
  6871.  04h    dd/mm/yy
  6872.  05h    dd.mm.yy
  6873.  06h    yy-mm-dd
  6874.  07h    mm/dd
  6875.  08h    dd/mm
  6876.  09h    dd.mm
  6877.  0Ah    mm-dd
  6878.  
  6879. (Table 2929)
  6880. Values for HP 95LX current time format:
  6881.  00h    HH:MM:SS am/pm
  6882.  01h    HH:MM am/pm
  6883.  02h    HH:MM:SS
  6884.  03h    HH.MM.SS
  6885.  04h    HH,MM,SS
  6886.  05h    HHhMMmSSs
  6887.  06h    HH:MM
  6888.  07h    HH.MM
  6889.  08h    HH,MM
  6890.  09h    HHhMMm
  6891.  
  6892. (Table 2930)
  6893. Values for HP 95LX keyboard layout:
  6894.  0001h    Belgium
  6895.  0002h    French Canadian
  6896.  0004h    Denmark
  6897.  0008h    Finland
  6898.  0010h    French
  6899.  0020h    Finland
  6900.  0040h    Italy
  6901.  0080h    Netherlands
  6902.  0100h    Norway
  6903.  0200h    Portugal
  6904.  0400h    Spain
  6905.  0800h    Sweden
  6906.  1000h    Swiss French
  6907.  2000h    Swiss German
  6908.  4000h    United Kingdom
  6909.  8000h    USA
  6910. --------b-60----DI0B0A-----------------------
  6911. INT 60 u - HP 95LX System Manager - CLOCK/CALENDAR SERVICE "M_SET_SETTINGS"
  6912.     DI = 0B0Ah
  6913.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  6914.         DWORD    pointer to ???
  6915.         DWORD    pointer to ???
  6916. Return: ???
  6917.     STACK unchanged
  6918. SeeAlso: INT 60/DI=0B09h
  6919. --------b-60----DI0B0B-----------------------
  6920. INT 60 u - HP 95LX System Manager - CLOCK/CALENDAR SERVICE "M_START_TIMER"
  6921.     DI = 0B0Bh
  6922.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  6923.         DWORD    pointer to ???
  6924. Return: ???
  6925.     STACK unchanged
  6926. SeeAlso: INT 60/DI=0B0Ch,INT 60/DI=0B0Dh
  6927. --------b-60----DI0B0C-----------------------
  6928. INT 60 u - HP 95LX System Manager - CLOCK/CALENDAR SERVICE "M_STOP_TIMER"
  6929.     DI = 0B0Ch
  6930.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  6931.         DWORD    pointer to ???
  6932. Return: ???
  6933.     STACK unchanged
  6934. SeeAlso: INT 60/DI=0B0Bh,INT 60/DI=0B0Dh
  6935. --------b-60----DI0B0D-----------------------
  6936. INT 60 u - HP 95LX System Manager - CLOCK/CALENDAR SERVICE "M_GET_TIMER"
  6937.     DI = 0B0Dh
  6938.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  6939.         DWORD    pointer to ???
  6940.         DWORD    pointer to ???
  6941.         DWORD    pointer to ???
  6942. Return: ???
  6943.     STACK unchanged
  6944. SeeAlso: INT 60/DI=0B0Bh,INT 60/DI=0B0Ch
  6945. --------b-60----DI0B0E-----------------------
  6946. INT 60 u - HP 95LX System Manager - CLOCK/CALENDAR SERVICE "M_TELL_ANYTIME"
  6947.     DI = 0B0Eh
  6948.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  6949.         WORD    ???
  6950.         WORD    ???
  6951.         WORD    ???
  6952.         DWORD    pointer to ???
  6953.         DWORD    pointer to ???
  6954. Return: DX:AX -> ???
  6955.     STACK unchanged
  6956. --------b-60----DI0B0F-----------------------
  6957. INT 60 u - HP 95LX System Manager - CLOCK/CALENDAR SERVCE "M_GET_SETTINGS_ADDR"
  6958.     DI = 0B0Fh
  6959.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  6960. Return: DX:AX -> system settings record (see #2926)
  6961.     STACK unchanged
  6962. SeeAlso: INT 60/DI=0B09h
  6963. --------b-60----DI0B10-----------------------
  6964. INT 60 u - HP 95LX System Manager - PARSE DATE SPECIFICATION
  6965.     DI = 0B10h
  6966.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  6967.         WORD    ???
  6968.         DWORD    pointer to ???
  6969.         DWORD    pointer to ???
  6970. Return: ???
  6971.     STACK unchanged
  6972. --------b-60----DI0B11-----------------------
  6973. INT 60 u - HP 95LX System Manager - PARSE TIME SPECIFICATION
  6974.     DI = 0B11h
  6975.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  6976.         WORD    ???
  6977.         DWORD    pointer to ???
  6978.         DWORD    pointer to ???
  6979. Return: ???
  6980.     STACK unchanged
  6981. --------b-60----DI0B12-----------------------
  6982. INT 60 u - HP 95LX System Manager - SET DATE PARSING RULE
  6983.     DI = 0B12h
  6984.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  6985.         WORD    new parsing rule (see #2931)
  6986. Return: ???
  6987.     STACK unchanged
  6988. SeeAlso: INT 60/DI=0B13h
  6989.  
  6990. (Table 2931)
  6991. Values for HP 95LX date parsing rule:
  6992.  01h    day-month-year
  6993.  02h    month-day-year
  6994.  03h    year-month-day
  6995.  04h    "DMYO"
  6996.  05h    "MDYO"
  6997.  OR with 08h to get any year
  6998. --------b-60----DI0B13-----------------------
  6999. INT 60 u - HP 95LX System Manager - SET TIME PARSING RULE
  7000.     DI = 0B13h
  7001.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  7002.         WORD    new parsing rule (see #2932)
  7003. Return: ???
  7004.     STACK unchanged
  7005. SeeAlso: INT 60/DI=0B12h
  7006.  
  7007. (Table 2932)
  7008. Values for HP 95LX time parsing rule:
  7009.  01h    HH:MM:SS (am/pm)
  7010.  02h    HH:MM:SS (24hr)
  7011.  03h    HHMM:SS (24hr)
  7012.  04h    HH:MM:SS.hh (24hr)
  7013.  05h    HH:MM (am/pm)
  7014.  06h    HH:MM (24hr)
  7015.  07h    HHMM (24hr)
  7016. --------b-60----DI0B14-----------------------
  7017. INT 60 u - HP 95LX System Manager - CLOCK/CALENDAR SERVICE "M_POST_TIME"
  7018.     DI = 0B14h
  7019.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  7020. Return: ???
  7021.     STACK unchanged
  7022. --------b-60----DI0B15-----------------------
  7023. INT 60 u - HP 95LX System Manager - CLOCK/CALENDAR SERVICE "M_DAY_TRIGGER"
  7024.     DI = 0B15h
  7025.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  7026.         WORD    ???
  7027. Return: ???
  7028.     STACK unchanged
  7029. SeeAlso: INT 15/AX=4DD4h,INT 61"HP 95LX",INT 62"HP 95LX"
  7030. --------b-60----DI0C00-----------------------
  7031. INT 60 u - HP 95LX System Manager - OPEN PRINTER
  7032.     DI = 0C00h
  7033.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  7034. Return: ???
  7035.     STACK unchanged
  7036. SeeAlso: INT 60/DI=0C01h,INT 60/DI=0C02h,INT 60/DI=0C03h
  7037. --------b-60----DI0C01-----------------------
  7038. INT 60 u - HP 95LX System Manager - CLOSE PRINTER
  7039.     DI = 0C01h
  7040.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  7041. Return: ???
  7042.     STACK unchanged
  7043. Note:    relinquishes control of printer
  7044. SeeAlso: INT 60/DI=0C00h
  7045. --------b-60----DI0C02-----------------------
  7046. INT 60 u - HP 95LX System Manager - WRITE TO PRINTER
  7047.     DI = 0C02h
  7048.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  7049.         DWORD    pointer to data to be written
  7050.         WORD    length of data
  7051. Return: ???
  7052.     STACK unchanged
  7053. SeeAlso: INT 60/DI=0C00h
  7054. --------b-60----DI0C03-----------------------
  7055. INT 60 u - HP 95LX System Manager - INITIALIZE PRINTER
  7056.     DI = 0C03h
  7057.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  7058. Return: ???
  7059.     STACK unchanged
  7060. SeeAlso: INT 60/DI=0C00h
  7061. --------b-60----DI0C04-----------------------
  7062. INT 60 u - HP 95LX System Manager - "M_TRANS_PRINTER"
  7063.     DI = 0C04h
  7064.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  7065.         WORD    ???
  7066.         DWORD    pointer to ???
  7067. Return: ???
  7068.     STACK unchanged
  7069. --------b-60----DI0C05-----------------------
  7070. INT 60 u - HP 95LX System Manager - "M_FALL_PRINTER"
  7071.     DI = 0C05h
  7072.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  7073.         WORD    ???
  7074.         DWORD    pointer to ???
  7075. Return: ???
  7076.     STACK unchanged
  7077. SeeAlso: INT 15/AX=4DD4h,INT 61"HP 95LX",INT 62"HP 95LX"
  7078. --------b-60----DI0E00-----------------------
  7079. INT 60 u - HP 95LX System Manager - COMMUNICATIONS SERVICE "M_COMM_INIT"
  7080.     DI = 0E00h
  7081.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  7082.         DWORD    pointer to ???
  7083. Return: ???
  7084.     STACK unchanged
  7085. SeeAlso: #2933,INT 60/DI=0E01h,INT 60/DI=0E02h
  7086.  
  7087. (Table 2933)
  7088. Values for HP 95LX error code:
  7089.  0000h    successful
  7090.  FFF1h    "E_BUSY"
  7091.  FFF2h    timeout
  7092.  FFF3h    framing error
  7093.  FFF4h    parity error
  7094.  FFF5h    overrun error
  7095.  FFF6h    "E_EMPTY"
  7096.  FFF7h    "E_CONECT"
  7097.  FFF8h    not open
  7098.  FFF9h    out of memory
  7099.  FFFAh    buffer overflow
  7100.  FFFBh    "E_NOFIT"
  7101.  FFFCh    unsupported
  7102.  FFFDh    "E_IVOPR"
  7103.  FFFEh    "E_IVCHN"
  7104.  FFFFh    "E_REOPEN"
  7105. --------b-60----DI0E01-----------------------
  7106. INT 60 u - HP 95LX System Manager - OPEN COMMUNICATIONS CHANNEL
  7107.     DI = 0E01h
  7108.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  7109.         DWORD    pointer to WORD buffer for comm channel handle
  7110.         WORD    communications line number (01h-04h)
  7111. Return: ???
  7112.     STACK unchanged
  7113. SeeAlso: INT 60/DI=0E00h,INT 60/DI=0E02h
  7114. --------b-60----DI0E02-----------------------
  7115. INT 60 u - HP 95LX System Manager - CLOSE COMMUNICATIONS CHANNEL
  7116.     DI = 0E02h
  7117.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  7118.         WORD    comm channel handle
  7119. Return: ???
  7120.     STACK unchanged
  7121. SeeAlso: INT 60/DI=0E00h,INT 60/DI=0E01h
  7122. --------b-60----DI0E03-----------------------
  7123. INT 60 u - HP 95LX System Manager - "M_COMM_GETMDM"
  7124.     DI = 0E03h
  7125.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  7126.         WORD    ???
  7127. Return: ???
  7128.     STACK unchanged
  7129. --------b-60----DI0E04-----------------------
  7130. INT 60 u - HP 95LX System Manager - "M_COMM_ANSWER"
  7131.     DI = 0E04h
  7132.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  7133.         WORD    ???
  7134.         WORD    ???
  7135. Return: ???
  7136.     STACK unchanged
  7137. --------b-60----DI0E05-----------------------
  7138. INT 60 u - HP 95LX System Manager - "M_COMM_DIAL"
  7139.     DI = 0E05h
  7140.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  7141.         WORD    ???
  7142.         DWORD    pointer to ???
  7143. Return: ???
  7144.     STACK unchanged
  7145. --------b-60----DI0E06-----------------------
  7146. INT 60 u - HP 95LX System Manager - RESET COMMUNICATIONS CHANNEL
  7147.     DI = 0E06h
  7148.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  7149.         WORD    comm channel handle
  7150.         WORD    reset options (see #2934)
  7151. Return: ???
  7152.     STACK unchanged
  7153.  
  7154. Bitfields for HP 95LX reset options:
  7155. Bit(s)    Description    (Table 2934)
  7156.  0    reset line
  7157.  1    flush transmit buffer
  7158.  2    flush receive buffer
  7159.  3    reset modem
  7160.  4    reset receiver's ^S state
  7161.  5    reset transmitter's ^S state
  7162. --------b-60----DI0E07-----------------------
  7163. INT 60 u - HP 95LX System Manager - "M_COMM_HANGUP"
  7164.     DI = 0E07h
  7165.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  7166.         WORD    ???
  7167. Return: ???
  7168.     STACK unchanged
  7169. --------b-60----DI0E08-----------------------
  7170. INT 60 u - HP 95LX System Manager - SEND DATA OVER COMM CHANNEL
  7171.     DI = 0E08h
  7172.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  7173.         WORD    comm channel handle
  7174.         DWORD    pointer to data to be sent
  7175.         WORD    option flags
  7176.             bit 0: send partial buffer
  7177.             bit 1: turn on receiver after sending
  7178.         DWORD    pointer to WORD containing length of data to be sent
  7179. Return: length WORD updated to contain number of bytes actually sent???
  7180.     STACK unchanged
  7181. SeeAlso: INT 60/DI=0E09h,INT 60/DI=0E0Bh
  7182. --------b-60----DI0E09-----------------------
  7183. INT 60 u - HP 95LX System Manager - QUERY COMM CHANNEL TRANSMIT QUEUE
  7184.     DI = 0E09h
  7185.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  7186.         WORD    ???
  7187.         DWORD    pointer to ??? WORD
  7188.         DWORD    pointer to ??? WORD
  7189. Return: ???
  7190.     STACK unchanged
  7191. SeeAlso: INT 60/DI=0E0Ah
  7192. --------b-60----DI0E0A-----------------------
  7193. INT 60 u - HP 95LX System Manager - QUERY COMM CHANNEL RECEIVE QUEUE
  7194.     DI = 0E0Ah
  7195.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  7196.         WORD    comm channel handle
  7197.         DWORD    pointer to WORD to get receive buffer size
  7198.         DWORD    pointer to WORD to get free bytes in receive buffer
  7199. Return: ???
  7200.     STACK unchanged
  7201. SeeAlso: INT 60/DI=0E09h,INT 60/DI=0E0Bh
  7202. --------b-60----DI0E0B-----------------------
  7203. INT 60 u - HP 95LX System Manager - RECEIVE DATA FROM COMM CHANNEL
  7204.     DI = 0E0Bh
  7205.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  7206.         WORD    comm channel handle
  7207.         DWORD    pointer to data buffer
  7208.         DWORD    pointer to WORD (call) length of data buffer
  7209.                     (ret) number of bytes received
  7210. Return: ???
  7211.     STACK unchanged
  7212. SeeAlso: INT 60/DI=0E08h,INT 60/DI=0E0Ah
  7213. --------b-60----DI0E0C-----------------------
  7214. INT 60 u - HP 95LX System Manager - "M_COMM_HAZCMD"
  7215.     DI = 0E0Ch
  7216.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  7217.         WORD    ???
  7218.         DWORD    pointer to ???
  7219.         WORD    ???
  7220. Return: ???
  7221.     STACK unchanged
  7222. --------b-60----DI0E0D-----------------------
  7223. INT 60 u - HP 95LX System Manager - "M_COMM_COMAND"
  7224.     DI = 0E0Dh
  7225.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  7226.         WORD    ???
  7227.         DWORD    pointer to ???
  7228.         WORD    ???
  7229. Return: ???
  7230.     STACK unchanged
  7231. --------b-60----DI0E0E-----------------------
  7232. INT 60 u - HP 95LX System Manager - "M_COMM_BREAK"
  7233.     DI = 0E0Eh
  7234.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  7235.         WORD    ???
  7236.         WORD    ???
  7237. Return: ???
  7238.     STACK unchanged
  7239. --------b-60----DI0E0F-----------------------
  7240. INT 60 u - HP 95LX System Manager - "M_COMM_FRCXON"
  7241.     DI = 0E0Fh
  7242.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  7243.         WORD    ???
  7244. Return: ???
  7245.     STACK unchanged
  7246. --------b-60----DI0E10-----------------------
  7247. INT 60 u - HP 95LX System Manager - "M_COMM_FRCXOF"
  7248.     DI = 0E10h
  7249.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  7250.         WORD    ???
  7251. Return: ???
  7252.     STACK unchanged
  7253. --------b-60----DI0E11-----------------------
  7254. INT 60 u - HP 95LX System Manager - "M_COMM_SETDTR"
  7255.     DI = 0E11h
  7256.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  7257.         WORD    ???
  7258.         WORD    ???
  7259. Return: ???
  7260.     STACK unchanged
  7261. --------b-60----DI0E12-----------------------
  7262. INT 60 u - HP 95LX System Manager - "M_COMM_XMITNG"
  7263.     DI = 0E12h
  7264.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  7265.         WORD    ???
  7266. Return: ???
  7267.     STACK unchanged
  7268. --------b-60----DI0E13-----------------------
  7269. INT 60 u - HP 95LX System Manager - "M_COMM_STATUS"
  7270.     DI = 0E13h
  7271.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  7272.         WORD    ???
  7273. Return: ???
  7274.     STACK unchanged
  7275. --------b-60----DI0E14-----------------------
  7276. INT 60 u - HP 95LX System Manager - SET COMMUNICATIONS SETTINGS
  7277.     DI = 0E14h
  7278.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  7279.         WORD    comm channel handle
  7280.         DWORD    pointer to communications settings (see #2935)
  7281. Return: ???
  7282.     STACK unchanged
  7283. SeeAlso: INT 60/DI=0E15h
  7284.  
  7285. Format of HP 95LX communications settings:
  7286. Offset    Size    Description    (Table 2935)
  7287.  00h    BYTE    dial type ('T' tone, 'P' pulse)
  7288.  01h    WORD    baud rate divisor (115200/baud_rate)
  7289.  03h    BYTE    parity (00h none, 08h odd, 18h even, 28h mark, 38h space)
  7290.  04h    BYTE    stop bits (00h one, 04h two)
  7291.  05h    BYTE    data bits - 5
  7292.  06h    BYTE    software handshake
  7293.         01h none, 02h XOFF/XON, 04h XOFF/any, 08h ENQ/ACK
  7294.  07h    BYTE    infrared (01h off, 02h on)
  7295.  08h    BYTE    duplex (01h half, 02h full)
  7296.  09h    BYTE    echo (01h echo, 02h no echo)
  7297. --------b-60----DI0E15-----------------------
  7298. INT 60 u - HP 95LX System Manager - GET COMMUNICATIONS SETTINGS
  7299.     DI = 0E15h
  7300.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  7301.         WORD    ???
  7302.         DWORD    pointer to buffer for settings (see #2935)
  7303. Return: ???
  7304.     STACK unchanged
  7305. SeeAlso: INT 60/DI=0E14h
  7306. --------b-60----DI0E16-----------------------
  7307. INT 60 u - HP 95LX System Manager - "M_COMM_CNFGUR"
  7308.     DI = 0E16h
  7309.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  7310.         WORD    ???
  7311.         WORD    ???
  7312.         WORD    ???
  7313.         WORD    ???
  7314.         WORD    ???
  7315. Return: ???
  7316.     STACK unchanged
  7317. --------b-60----DI0E17-----------------------
  7318. INT 60 u - HP 95LX System Manager - "M_COMM_QRYERR"
  7319.     DI = 0E17h
  7320.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  7321.         WORD    ???
  7322. Return: ???
  7323.     STACK unchanged
  7324. SeeAlso: INT 15/AX=4DD4h,INT 61"HP 95LX",INT 62"HP 95LX"
  7325. --------b-60----DI0F00-----------------------
  7326. INT 60 u - HP 95LX System Manager - "M_ERRMSG"
  7327.     DI = 0F00h
  7328.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  7329.         WORD    ???
  7330.         DWORD    pointer to ???
  7331.         WORD    ???
  7332.         DWORD    pointer to ???
  7333. Return: ???
  7334.     STACK unchanged
  7335. --------b-60----DI0F01-----------------------
  7336. INT 60 u - HP 95LX System Manager - DRAW STANDARD TITLE BOX
  7337.     DI = 0F01h
  7338.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  7339.         DWORD    pointer to ASCIZ title string
  7340. Return: ???
  7341.     STACK unchanged
  7342. --------b-60----DI0F02-----------------------
  7343. INT 60 u - HP 95LX System Manager - "SHOWNAME"
  7344.     DI = 0F02h
  7345.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  7346.         DWORD    pointer to ???
  7347. Return: ???
  7348.     STACK unchanged
  7349. --------b-60----DI0F03-----------------------
  7350. INT 60 u - HP 95LX System Manager - DISPLAY TWO-LINE MESSAGE BOX
  7351.     DI = 0F03h
  7352.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  7353.         DWORD    pointer to first line of message
  7354.         WORD    length of first line
  7355.         DWORD    pointer to second line of message
  7356.         WORD    length of second line
  7357. Return: ???
  7358.     STACK unchanged
  7359. SeeAlso: INT 60/DI=0300h,INT 60/DI=0F04h,INT 60/DI=0F09h
  7360. --------b-60----DI0F04-----------------------
  7361. INT 60 u - HP 95LX System Manager - REMOVE MESSAGE BOX
  7362.     DI = 0F04h
  7363.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  7364. Return: ???
  7365.     STACK unchanged
  7366. SeeAlso: INT 60/DI=0F03h,INT 60/DI=0F09h
  7367. --------b-60----DI0F05-----------------------
  7368. INT 60 u - HP 95LX System Manager - "M_COM_TIMER_ADDR"
  7369.     DI = 0F05h
  7370.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  7371. Return: DX:AX -> ???
  7372.     STACK unchanged
  7373. --------b-60----DI0F06-----------------------
  7374. INT 60 u - HP 95LX System Manager - "M_COM_TIMER_COUNT_ADDR"
  7375.     DI = 0F06h
  7376.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  7377. Return: DX:AX -> ???
  7378.     STACK unchanged
  7379. --------b-60----DI0F07-----------------------
  7380. INT 60 u - HP 95LX System Manager - "M_SYS_RSRC_ADDR"
  7381.     DI = 0F07h
  7382.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  7383. Return: DX:AX -> ???
  7384.     STACK unchanged
  7385. --------b-60----DI0F08-----------------------
  7386. INT 60 u - HP 95LX System Manager - "M_BIOS_OUTSTR"
  7387.     DI = 0F08h
  7388.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  7389.         ???
  7390. Return: ???
  7391.     STACK unchanged
  7392. --------b-60----DI0F09-----------------------
  7393. INT 60 u - HP 95LX System Manager - DISPLAY THREE-LINE MESSAGE BOX
  7394.     DI = 0F09h
  7395.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  7396.         DWORD    pointer to first line of message
  7397.         WORD    length of first line
  7398.         DWORD    pointer to second line of message
  7399.         WORD    length of second line
  7400.         DWORD    pointer to third line of message
  7401.         WORD    length of third line
  7402. Return: ???
  7403.     STACK unchanged
  7404. SeeAlso: INT 60/DI=0F03h,INT 60/DI=0F04h
  7405. --------b-60----DI0F0A-----------------------
  7406. INT 60 u - HP 95LX System Manager - DISABLE MACROS
  7407.     DI = 0F0Ah
  7408.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  7409. Return: ???
  7410.     STACK unchanged
  7411. SeeAlso: INT 60/DI=0F0Bh
  7412. --------b-60----DI0F0B-----------------------
  7413. INT 60 u - HP 95LX System Manager - ENABLE MACROS
  7414.     DI = 0F0Bh
  7415.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  7416. Return: ???
  7417.     STACK unchanged
  7418. SeeAlso: INT 60/DI=0F0Ah
  7419. --------b-60----DI0F0C-----------------------
  7420. INT 60 u - HP 95LX System Manager - "M_DATE_TIME_SEPS"
  7421.     DI = 0F0Ch
  7422.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  7423.         ???
  7424. Return: ???
  7425.     STACK unchanged
  7426. --------b-60----DI0F0D-----------------------
  7427. INT 60 u - HP 95LX System Manager - "M_FORM_FT"
  7428.     DI = 0F0Dh
  7429.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  7430.         DWORD    pointer to ???
  7431. Return: DX:AX -> ???
  7432.     STACK unchanged
  7433. --------b-60----DI0F0E-----------------------
  7434. INT 60 u - HP 95LX System Manager - "M_RAM_IV_INFO"
  7435.     DI = 0F0Eh
  7436.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  7437.         DWORD    pointer to ???
  7438. Return: DX:AX -> ???
  7439.     STACK unchanged
  7440. SeeAlso: INT 15/AX=4DD4h,INT 61"HP 95LX",INT 62"HP 95LX"
  7441. --------b-60----DI1005-----------------------
  7442. INT 60 u - HP 95LX System Manager - "M_DIRTY_SYNC" - FORCE SCREEN UPDATE
  7443.     DI = 1005h
  7444.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  7445. Return: ???
  7446.     STACK unchanged
  7447. SeeAlso: INT 10/AH=FFh,INT 60/DI=0300h,INT 60/DI=0301h
  7448. --------b-60----DI1200-----------------------
  7449. INT 60 u - HP 95LX System Manager - RESOURCE SERVICE "MAP_RESOURCE_FILE"
  7450.     DI = 1200h
  7451.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  7452.         DWORD    pointer to ???
  7453. Return: ???
  7454.     STACK unchanged
  7455. --------b-60----DI1201-----------------------
  7456. INT 60 u - HP 95LX System Manager - "GET_RESOURCE_PTR"
  7457.     DI = 1201h
  7458.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  7459.         WORD    ???
  7460. Return: DX:AX -> ???
  7461.     STACK unchanged
  7462. SeeAlso: INT 15/AX=4DD4h,INT 61"HP 95LX",INT 62"HP 95LX"
  7463. --------b-60----DI1202-----------------------
  7464. INT 60 u - HP 95LX System Manager - "GET_RSRC_TAB_PTR"
  7465.     DI = 1202h
  7466.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  7467. Return: DX:AX -> ???
  7468.     STACK unchanged
  7469. --------b-60----DI1203-----------------------
  7470. INT 60 u - HP 95LX System Manager - "INIT_SYSMGR_RSRCS"
  7471.     DI = 1203h
  7472.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  7473. Return: ???
  7474.     STACK unchanged
  7475. --------b-60----DI1300-----------------------
  7476. INT 60 u - HP 95LX System Manager - INITIALIZE HELP SYSTEM
  7477.     DI = 1300h
  7478.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  7479.         DWORD    pointer to ???
  7480.         DWORD    pointer to ???
  7481.         WORD    ???
  7482. Return: ???
  7483.     STACK unchanged
  7484. --------b-60----DI1301-----------------------
  7485. INT 60 u - HP 95LX System Manager - DISPLAY HELP
  7486.     DI = 1301h
  7487.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  7488.         DWORD    pointer to ???
  7489. Return: ???
  7490.     STACK unchanged
  7491. --------b-60----DI1302-----------------------
  7492. INT 60 u - HP 95LX System Manager - "M_HELP_KEY"
  7493.     DI = 1302h
  7494.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  7495.         DWORD    pointer to ???
  7496.         WORD    ???
  7497. Return: ???
  7498.     STACK unchanged
  7499. --------b-60----DI1303-----------------------
  7500. INT 60 u - HP 95LX System Manager - "M_HELP_TERM"
  7501.     DI = 1303h
  7502.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  7503.         DWORD    pointer to ???
  7504. Return: ???
  7505.     STACK unchanged
  7506. SeeAlso: INT 15/AX=4DD4h,INT 61"HP 95LX",INT 62"HP 95LX"
  7507. --------b-60----DI1400-----------------------
  7508. INT 60 u - HP 95LX System Manager - "M_ColInit"
  7509.     DI = 1400h
  7510.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  7511. Return: AX = ???
  7512.     STACK unchanged
  7513. --------b-60----DI1401-----------------------
  7514. INT 60 u - HP 95LX System Manager - "M_ColCpStr"
  7515.     DI = 1401h
  7516.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  7517.         DWORD    pointer to ???
  7518.         WORD    ???
  7519.         DWORD    pointer to ???
  7520.         WORD    ???
  7521. Return: ???
  7522.     STACK unchanged
  7523. --------b-60----DI1402-----------------------
  7524. INT 60 u - HP 95LX System Manager - "M_ColLicsStr"
  7525.     DI = 1402h
  7526.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  7527.         ???
  7528. Return: ???
  7529.     STACK unchanged
  7530. --------b-60----DI1403-----------------------
  7531. INT 60 u - HP 95LX System Manager - "M_ColLicsChar"
  7532.     DI = 1403h
  7533.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  7534.         ???
  7535. Return: ???
  7536.     STACK unchanged
  7537. --------b-60----DI1404-----------------------
  7538. INT 60 u - HP 95LX System Manager - "M_ColToLower"
  7539.     DI = 1404h
  7540.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  7541.         DWORD    pointer to ???
  7542.         WORD    ???
  7543. Return: ???
  7544.     STACK unchanged
  7545. --------b-60----DI1405-----------------------
  7546. INT 60 u - HP 95LX System Manager - "M_ColCpSearch"
  7547.     DI = 1405h
  7548.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  7549.         DWORD    pointer to ???
  7550.         WORD    ???
  7551.         DWORD    pointer to ???
  7552.         WORD    ???
  7553.         WORD    ???
  7554. Return: ???
  7555.     STACK unchanged
  7556. --------b-60----DI1406-----------------------
  7557. INT 60 u - HP 95LX System Manager - "M_ColToUpper"
  7558.     DI = 1406h
  7559.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  7560.         DWORD    pointer to ???
  7561.         WORD    ???
  7562. Return: ???
  7563.     STACK unchanged
  7564. SeeAlso: INT 15/AX=4DD4h,INT 61"HP 95LX",INT 62"HP 95LX"
  7565. --------b-60----DI1500-----------------------
  7566. INT 60 u - HP 95LX System Manager - "GrDispInit"
  7567.     DI = 1500h
  7568.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  7569.         ???
  7570. Return: ???
  7571.     STACK unchanged
  7572. --------b-60----DI1501-----------------------
  7573. INT 60 u - HP 95LX System Manager - "GrDispClear"
  7574.     DI = 1501h
  7575.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  7576.         ???
  7577. Return: ???
  7578.     STACK unchanged
  7579. --------b-60----DI1502-----------------------
  7580. INT 60 u - HP 95LX System Manager - "GrDispDot"
  7581.     DI = 1502h
  7582.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  7583.         ???
  7584. Return: ???
  7585.     STACK unchanged
  7586. --------b-60----DI1503-----------------------
  7587. INT 60 u - HP 95LX System Manager - "GrDispDraw"
  7588.     DI = 1503h
  7589.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  7590.         ???
  7591. Return: ???
  7592.     STACK unchanged
  7593. --------b-60----DI1504-----------------------
  7594. INT 60 u - HP 95LX System Manager - "GrDispFill"
  7595.     DI = 1504h
  7596.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  7597.         ???
  7598. Return: ???
  7599.     STACK unchanged
  7600. --------b-60----DI1505-----------------------
  7601. INT 60 u - HP 95LX System Manager - "GrDispRead"
  7602.     DI = 1505h
  7603.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  7604.         ???
  7605. Return: ???
  7606.     STACK unchanged
  7607. --------b-60----DI1506-----------------------
  7608. INT 60 u - HP 95LX System Manager - "GrDispString"
  7609.     DI = 1506h
  7610.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  7611.         ???
  7612. Return: ???
  7613.     STACK unchanged
  7614. --------b-60----DI1507-----------------------
  7615. INT 60 u - HP 95LX System Manager - "GrDispPan"
  7616.     DI = 1507h
  7617.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  7618.         ???
  7619. Return: ???
  7620.     STACK unchanged
  7621. --------b-60----DI1508-----------------------
  7622. INT 60 u - HP 95LX System Manager - "GrDispZoom"
  7623.     DI = 1508h
  7624.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  7625.         ???
  7626. Return: ???
  7627.     STACK unchanged
  7628. --------b-60----DI1509-----------------------
  7629. INT 60 u - HP 95LX System Manager - "GrDispSave"
  7630.     DI = 1509h
  7631.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  7632.         ???
  7633. Return: ???
  7634.     STACK unchanged
  7635. --------b-60----DI150A-----------------------
  7636. INT 60 u - HP 95LX System Manager - "GrDispRestore"
  7637.     DI = 150Ah
  7638.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  7639.         ???
  7640. Return: ???
  7641.     STACK unchanged
  7642. --------b-60----DI150B-----------------------
  7643. INT 60 u - HP 95LX System Manager - "GrDispCorner"
  7644.     DI = 150Bh
  7645.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  7646.         ???
  7647. Return: ???
  7648.     STACK unchanged
  7649. SeeAlso: INT 15/AX=4DD4h,INT 61"HP 95LX",INT 62"HP 95LX"
  7650. --------b-60----DI1604-----------------------
  7651. INT 60 u - HP 95LX System Manager - "CP_TO_LICS"
  7652.     DI = 1604h
  7653.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  7654.         ???
  7655. Return: ???
  7656.     STACK unchanged
  7657. SeeAlso: INT 15/AX=4DD4h,INT 61"HP 95LX",INT 62"HP 95LX"
  7658. --------G-6000-------------------------------
  7659. INT 60 - SYS_PROF.EXE - PROFILER STATUS
  7660.     AH = 00h
  7661. Return: AX = 0000h    profiling is off
  7662.         otherwise profiling is on
  7663. Note:    SYS_PROF.EXE is the TSR portion of a profiler from Micro Cornucopia
  7664.       Issue 47
  7665. SeeAlso: AH=01h"SYS_PROF",AH=02h"SYS_PROF"
  7666. --------G-6000-------------------------------
  7667. INT 60 - MDEBUG - GET STATUS
  7668.     AH = 00h
  7669.     DS:SI -> password or a null byte
  7670. Return: AX = return code
  7671.         FFFEh password is invalid
  7672.         FFFDh display mode is invalid
  7673.         else successful
  7674.         ES = value of the monitor register SE
  7675.         DI = value of the monitor register OF
  7676.         CH = monitor color
  7677.         CL = interpreter color
  7678.         BH = monitor start line
  7679.         BL = interpreter start line
  7680.         AH = makecode of the hotkey
  7681.         AL = ASCII code of the hotkey
  7682.         DL = status of special keys (only SHIFT, ALT, CTRL) for the
  7683.               hotkey (coded as for the keyboard flag at 0040h:0017h)
  7684.         DH = basic process number for the communication with drivers
  7685.               process number for the display driver, DH+1 = process
  7686.               number for the command driver(s)
  7687.     DS:SI -> MDEBUG identification table (see #2936)
  7688. Program: MDEBUG is a shareware memory-resident debugging tool by Bernd
  7689.       Schemmer, including a memory monitor, an interpreter, and a
  7690.       disassembler
  7691. Notes:    MDEBUG uses INT 60 by default, but may be directed to any of INT 60
  7692.       through INT 67; the interrupt handler is preceded by the signature
  7693.       "USERINT" and is not chained
  7694.     if DS:SI points at a null byte, MDEBUG will prompt for a password if
  7695.       passwords are active; enough stack space must be provided for an
  7696.       INT 10h call (which MDEBUG uses while prompting for the password)
  7697. SeeAlso: AH=02h"MDEBUG"
  7698. Index:    hotkeys;MDEBUG
  7699.  
  7700. Format of MDEBUG identification table:
  7701. Offset    Size    Description    (Table 2936)
  7702.  -2    WORD    entry offset
  7703.  00h    WORD    CS of MDEBUG
  7704.  02h    DWORD    old INT 08h vector
  7705.  06h    DWORD    old INT 09h vector
  7706.  0Ah    DWORD    address INT 16h routine used by MDEBUG
  7707.  0Eh    BYTE    length of version string
  7708.  0Fh  N BYTEs    version string
  7709. --------N-600000-----------------------------
  7710. INT 60 - RIFS - CLIENT - INSTALLATION CHECK
  7711.     AX = 0000h
  7712. Return: AX = 1234h if installed
  7713.     CF clear
  7714. Program: RIFS is the Remote Installable File System by "kyle"
  7715. Range:    INT 60 to INT 66 and INT 18,selected by scanning for 0000h:0000h vector
  7716. Note:    the installation check consists of testing for the signature "RIFS"
  7717.       immediately preceding the interrupt handler
  7718. SeeAlso: AX=0001h,AX=0005h,AX=0007h,AX=0008h,INT 2F/AX=5600h
  7719. --------N-600001-----------------------------
  7720. INT 60 - RIFS - CLIENT - UNINSTALL
  7721.     AX = 0001h
  7722. Return: CF clear if successful
  7723. SeeAlso: AX=0000h,AX=0009h
  7724. --------N-600002-----------------------------
  7725. INT 60 - RIFS - CLIENT - REMAP DRIVE
  7726.     AX = 0002h
  7727.     BH = local drive number
  7728.     BL = remote drive number
  7729. Return: CF clear if successful
  7730.     CF set on error
  7731. SeeAlso: AX=0000h,AX=0003h,AX=0004h,INT 21/AX=5F03h,INT 21/AX=5F05h"STARLITE"
  7732. --------N-600003-----------------------------
  7733. INT 60 - RIFS - CLIENT - UNMAP DRIVE
  7734.     AX = 0003h
  7735.     BL = drive to unmap
  7736. Return: CF clear if successful
  7737.     CF set on error
  7738. SeeAlso: AX=0000h,AX=0002h,AX=0004h,INT 21/AX=5F04h,INT 21/AX=5F06h"STARLITE"
  7739. --------N-600004-----------------------------
  7740. INT 60 - RIFS - CLIENT - UNMAP ALL DRIVES
  7741.     AX = 0004h
  7742. Return: CF clear if successful
  7743.     CF set on error
  7744. SeeAlso: AX=0000h,AX=0002h,AX=0003h
  7745. --------N-600005-----------------------------
  7746. INT 60 - RIFS - CLIENT - GET TRANSLATION TABLE
  7747.     AX = 0005h
  7748. Return: CF clear if successful
  7749.         ES:BX -> translation table
  7750.     CF set on error
  7751. SeeAlso: AX=0000h,AX=0006h,AX=0007h
  7752. --------N-600006-----------------------------
  7753. INT 60 - RIFS - CLIENT - GET STATISTICS TABLE
  7754.     AX = 0006h
  7755. Return: CF clear if successful
  7756.         ES:BX -> statistics table
  7757.     CF set on error
  7758. SeeAlso: AX=0000h,AX=0005h,AX=0007h,AX=000Ah
  7759. --------N-600007-----------------------------
  7760. INT 60 - RIFS - CLIENT - GET PORT TRANSLATION TABLE
  7761.     AX = 0007h
  7762. Return: CF clear if successful
  7763.         CX = number of entries
  7764.         ES:BX -> port mapping table
  7765.     CF set on error
  7766. SeeAlso: AX=0000h,AX=0005h
  7767. --------N-600008-----------------------------
  7768. INT 60 - RIFS - SERVER - INSTALLATION CHECK
  7769.     AX = 0008h
  7770. Return: CF clear if successful
  7771.     CF set on error
  7772. Range:    INT 60 to INT 66 and INT 18,selected by scanning for 0000h:0000h vector
  7773. Note:    the installation check consists of testing for the signature "RIFS"
  7774.       immediately preceding the interrupt handler
  7775. SeeAlso: AX=0000h,AX=0009h,AX=000Ah,AX=000Bh
  7776. --------N-600009-----------------------------
  7777. INT 60 - RIFS - SERVER - UNINSTALL
  7778.     AX = 0009h
  7779. Return: CF clear if successful
  7780.     CF set on error
  7781. SeeAlso: AX=0001h,AX=0008h
  7782. --------N-60000A-----------------------------
  7783. INT 60 - RIFS - SERVER - GET STATISTICS TABLE
  7784.     AX = 000Ah
  7785. Return: CF clear if successful
  7786.         ES:BX -> statistics table
  7787.     CF set on error
  7788. SeeAlso: AX=0006h,AX=0008h,AX=0009h,AX=000Bh
  7789. --------N-60000B-----------------------------
  7790. INT 60 - RIFS - SERVER - RESET
  7791.     AX = 000Bh
  7792. Return: CF clear if successful
  7793.     CF set on error
  7794. Note:    closes all open files
  7795. SeeAlso: AX=0008h,AX=0009h
  7796. --------G-6001-------------------------------
  7797. INT 60 - MDEBUG - GET ADDRESS OF THE HELP REGISTERS
  7798.     AH = 01h
  7799.     DS:SI -> password or a null byte
  7800. Return: AX = return code
  7801.         FFFEh password is invalid
  7802.         FFFDh display mode is invalid
  7803.         else successful
  7804.         ES:DI point to the help registers of MDEBUG
  7805.            ES:DI-02h  -> R0 (WORD)
  7806.            ES:DI      -> R1 (WORD)
  7807.            ES:DI+02h  -> R2 (WORD)
  7808.            ES:DI+04h  -> R3 (WORD)
  7809.            ...
  7810.            ES:DI+0Eh  -> R8 (WORD)
  7811. --------G-6001-------------------------------
  7812. INT 60 - SYS_PROF.EXE - TURN PROFILING OFF
  7813.     AH = 01h
  7814. Note:    SYS_PROF.EXE is the TSR portion of a profiler from Micro Cornucopia
  7815.       Issue 47
  7816. SeeAlso: AH=00h"SYS_PROF",AH=02h"SYS_PROF"
  7817. --------N-6001FF-----------------------------
  7818. INT 60 - FTP Packet Driver - BASIC FUNC - GET DRIVER INFO
  7819.     AX = 01FFh
  7820.     BX = handle returned by function 02h
  7821. Return: CF set on error
  7822.         DH = error code (see #2937)
  7823.     CF clear if successful
  7824.         BX = version
  7825.         CH = network interface class (see #2938)
  7826.         DX = interface type (see #2938)
  7827.         CL = number
  7828.         DS:SI -> name
  7829.         AL = driver functions supported
  7830.         01h basic
  7831.         02h basic and extended
  7832.         05h basic and high-performance
  7833.         06h basic, high-performance, and extended
  7834.         FFh not installed
  7835. Note:    the handle in BX is optional for drivers written to v1.07 or later of
  7836.       the packet driver specification
  7837.  
  7838. (Table 2937)
  7839. Values for Packet Driver error code:
  7840.  01h "BAD_HANDLE"    invalid handle number
  7841.  02h "NO_CLASS"        no interfaces of the specified class found
  7842.  03h "NO_TYPE"        no interfaces of the specified type found
  7843.  04h "NO_NUMBER"    no interfaces of the specified number found
  7844.  05h "BAD_TYPE"        bad packet type
  7845.  06h "NO_MULTICAST"    interface does not support multicast messages
  7846.  07h "CANT_TERMINATE"    this packet driver cannot terminate
  7847.  08h "BAD_MODE"        invalid receiver mode
  7848.  09h "NO_SPACE"        insufficient space
  7849.  0Ah "TYPE_INUSE"    type accessed but never released
  7850.  0Bh "BAD_COMMAND"    bad command
  7851.  0Ch "CANT_SEND"    packet could not be sent
  7852.  0Dh "CANT_SET"        hardware address could not be changed
  7853.  0Eh "BAD_ADDRESS"    hardware address has a bad length or format
  7854.  0Fh "CANT_RESET"    could not reset interface
  7855.  
  7856. (Table 2938)
  7857. Values for Packet Driver network interface classes/types:
  7858.     Class 01h  Ethernet/IEEE 802.3
  7859.     01h 3COM 3C500/3C501
  7860.     02h 3COM 3C505
  7861.     03h MICOM-Interlan NI5010
  7862.     04h BICC Data Networks 4110
  7863.     05h BICC Data Networks 4117
  7864.     06h MICOM-Interlan NP600
  7865.     08h Ungermann-Bass PC-NIC
  7866.     09h Univation NC-516
  7867.     0Ah TRW PC-2000
  7868.     0Bh MICOM-Interlan NI5210
  7869.     0Ch 3COM 3C503
  7870.     0Dh 3COM 3C523
  7871.     0Eh Western Digital WD8003
  7872.     0Fh Spider Systems S4
  7873.     10h Torus Frame Level
  7874.     11h 10Net Communications
  7875.     12h Gateway PC-bus
  7876.     13h Gateway AT-bus
  7877.     14h Gateway MCA-bus
  7878.     15h IMC PCnic
  7879.     16h IMC PCnic II
  7880.     17h IMC PCnic 8-bit
  7881.     18h Tigan Communications
  7882.     19h Micromatic Research
  7883.     1Ah Clarkson "Multiplexor"
  7884.     1Bh D-Link 8-bit
  7885.     1Ch D-Link 16-bit
  7886.     1Dh D-Link PS/2
  7887.     1Eh Research Machines 8
  7888.     1Fh Research Machines 16
  7889.     20h Research Machines MCA
  7890.     21h Radix Microsystems EXM1 16-bit
  7891.     22h Interlan Ni9210
  7892.     23h Interlan Ni6510
  7893.     24h Vestra LANMASTER 16-bit
  7894.     25h Vestra LANMASTER 8-bit
  7895.     26h Allied Telesis PC/XT/AT
  7896.     27h Allied Telesis NEC PC-98
  7897.     28h Allied Telesis Fujitsu FMR
  7898.     29h Ungermann-Bass NIC/PS2
  7899.     2Ah Tiara LANCard/E AT
  7900.     2Bh Tiara LANCard/E MC
  7901.     2Ch Tiara LANCard/E TP
  7902.     2Dh Spider Communications SpiderComm 8
  7903.     2Eh Spider Communications SpiderComm 16
  7904.     2Fh AT&T Starlan NAU
  7905.     30h AT&T Starlan-10 NAU
  7906.     31h AT&T Ethernet NAU
  7907.     32h Intel smart card
  7908.     33h Xircom Packet Adapter
  7909.     34h Aquila Ethernet
  7910.     35h Novell NE1000
  7911.     36h Novell NE2000
  7912.     37h SMC PC-510
  7913.     38h AT&T Fiber NAU
  7914.     39h NDIS to Packet Driver adapter
  7915.     3Ah Racal-InterLan ES3210
  7916.     3Bh General Systems ISDN simulated Ethernet
  7917.     3Ch Hewlett-Packard
  7918.     3Dh IMC EtherNic-8
  7919.     3Eh IMC EtherNic-16
  7920.     3Fh IMC EtherNic-MCA
  7921.     40h NetWorth EtherNext
  7922.     41h Dataco Scanet
  7923.     42h DEC DEPCA
  7924.     43h C-Net
  7925.     44h Gandalf LANLine
  7926.     45h Apricot built-in
  7927.     46h David Systems Ether-T
  7928.     47h ODI to Packet Driver adapter (see also INT 2F/AX=5100h)
  7929.     48h AMD Am21110-16
  7930.     49h Intel ICD Network controller family
  7931.     4Ah Intel ICD PCL2
  7932.     4Bh Intel ICD PCL2A
  7933.     4Ch AT&T LANPacer
  7934.     4Dh AT&T LANPacer+
  7935.     4Eh AT&T EVB
  7936.     4Fh AT&T StarStation
  7937.     50h SLIP simulated ethernet
  7938.     51h Racal-Interlan NIA310
  7939.     52h Racal-Interlan NISE
  7940.     53h Racal-Interlan NISE30
  7941.     54h Racal-Interlan NI6610
  7942.     55h Ethernet over IP/UDP
  7943.     56h ICL EtherTeam 16
  7944.     57h David Systems
  7945.     58h NCR WaveLAN
  7946.     59h Thomas Contrad TC5045
  7947.     5Ah Russ Nelson's Parallel Port driver
  7948.     5Bh Intell EtherExpress 16
  7949.     5Ch IBMTOKEN
  7950.     5Dh Zenith Z-Note
  7951.     5Eh 3Com 3C509
  7952.     5Fh Mylex LNE390
  7953.     60h Madge Smart Ringnode
  7954.     61h Novell NE2100
  7955.     62h Allied Telesis 1500
  7956.     63h Allied Telesis 1700
  7957.     64h Fujitsu EtherCoupler
  7958.     Class 02h  ProNET-10
  7959.     01h Proteon p1300
  7960.     02h Proteon p1800
  7961.     Class 03h  IEEE 802.5/ProNet-4 (without expanded RIFs)
  7962.     01h IBM Token-Ring Adapter
  7963.     02h Proteon p1340
  7964.     03h Proteon p1344
  7965.     04h Gateway PC-bus
  7966.     05h Gateway AT-bus
  7967.     06h Gateway MCA-bus
  7968.     07h Madge board
  7969.     39h NDIS to Packet Driver adapter
  7970.     47h ODI to Packet Driver adapter
  7971.     Class 04h  Omninet
  7972.     Class 05h  Appletalk
  7973.     01h ATALK.SYS adapter
  7974.     Class 06h  Serial Line
  7975.     01h Clarkson 8250-SLIP
  7976.     02h Clarkson "Multiplexor"
  7977.     03h Eicon Technologies
  7978.     Class 07h  StarLAN (subsumed by Ethernet class)
  7979.     Class 08h  ARCnet
  7980.     01h Datapoint RIM
  7981.     Class 09h  AX.25
  7982.     01h Ottawa PI card
  7983.     02h Eicon Technologies
  7984.     Class 0Ah  KISS
  7985.     Class 0Bh  IEEE 802.3 with 802.2 headers
  7986.     types same as for class 01h
  7987.     Class 0Ch  FDDI with 802.2 headers
  7988.     01h Western Digital
  7989.     02h Frontier Technology
  7990.     Class 0Dh  Internet X.25
  7991.     01h Western Digital
  7992.     02h Frontier Technology
  7993.     03h Emerging Technologies
  7994.     04h The Software Forge
  7995.     05h Link Data Intelligent X.25
  7996.     06h Eicon Technologies
  7997.     Class 0Eh  N.T. LANSTAR (encapsulating DIX Ethernet)
  7998.     01h NT LANSTAR/8
  7999.     02h NT LANSTAR/MC
  8000.     Class 0Fh  SLFP (MIT serial specification)
  8001.     01h MERIT
  8002.     Class 10h  PPP (Point-to-Point Protocol)
  8003.     01h 8250/16550 UART
  8004.     02h Niwot Networks synch
  8005.     03h Eicon Technologies
  8006.     Class 11h  802.5 with expanded RIFs
  8007.     types same as for class 3
  8008.     Class 12h  reserved for LCP/NCPs
  8009. Note: class and type numbers are cleared through FTP Software
  8010. --------G-6002-------------------------------
  8011. INT 60 - MDEBUG - SET STATUS
  8012.     AH = 02h
  8013.     DS:SI -> password or a null byte
  8014.     ES = new value for the register SE
  8015.     DI = new value for the register OF
  8016.     CH = new monitor color if nonzero
  8017.     CL = new interpreter color if nonzero
  8018.     BH = new monitor start line if nonzero
  8019.     BL = new interpreter start line if nonzero
  8020.     AL = new ASCII code for the hotkey ('A'..'Z', 'a'..'z') if nonzero
  8021.     DL = new status of the special keys (SHIFT, ALT, CTRL) for the hotkey
  8022.           if nonzero
  8023.     DH = if nonzero, new basic process number for communication with the
  8024.           drivers (DH = multiplex number for the display driver,
  8025.           DH+1 = multiplex number for the command driver or drivers)
  8026. Return: AX = return code
  8027.         FFFFh call not allowed
  8028.         FFFEh password is invalid
  8029.         FFFDh display mode is invalid
  8030.         0000h successful, status changed
  8031.         else AL = error reasons (see #2939)
  8032. Note:    the values of the registers SE and OF are always changed, the other
  8033.       values are only changed if they are valid
  8034. SeeAlso: AH=00h"MDEBUG"
  8035. Index:    hotkeys;MDEBUG
  8036.  
  8037. Bitfields for MDEBUG error reasons:
  8038. Bit(s)    Description    (Table 2939)
  8039.  0    invalid monitor start line
  8040.  1    invalid interpreter start line
  8041.  2    invalid hotkey
  8042.  3    invalid process number
  8043.  4-7    reserved
  8044. --------N-6002-------------------------------
  8045. INT 60 - FTP Packet Driver - BASIC FUNC - ACCESS TYPE
  8046.     AH = 02h
  8047.     AL = interface class
  8048.     BX = interface type
  8049.     DL = interface number
  8050.     DS:SI -> type
  8051.     CX = length of type (0000h for all packets)
  8052.     ES:DI -> receiver function (see #2940)
  8053. Return: CF set on error
  8054.         DH = error code (see #2937)
  8055.     CF clear if successful
  8056.         AX = handle
  8057. SeeAlso: AH=03h"FTP"
  8058.  
  8059. (Table 2940)
  8060. Values packet driver receiver is called with when a packet is received:
  8061.     AX = subfunction
  8062.         00h get packet buffer
  8063.         CX = buffer length
  8064.         DX = lookahead length (v1.10+)
  8065.         DS:SI -> lookahead buffer if DX nonzero (v1.10+)
  8066.         DI = error flags (class dependent) (v1.10+)
  8067.         Return: ES:DI -> packet buffer
  8068.                 0000h:0000h means throw away packet
  8069.             CX = size of buffer (v1.10+), may be smaller than
  8070.                   incoming data
  8071.         01h copy completed
  8072.         DS:SI -> buffer
  8073.         CX = bytes actually copied (v1.10+)
  8074.     BX = handle
  8075. --------G-6002-------------------------------
  8076. INT 60 - SYS_PROF.EXE - TURN PROFILING ON
  8077.     AH = 02h
  8078. Note:    SYS_PROF.EXE is the TSR portion of a profiler from Micro Cornucopia
  8079.       Issue 47
  8080. SeeAlso: AH=00h"SYS_PROF",AH=01h"SYS_PROF"
  8081. --------G-6003-------------------------------
  8082. INT 60 - MDEBUG - POP UP
  8083.     AH = 03h
  8084.     DS:SI -> password or a null byte
  8085.     ES -> new value for the register SE
  8086.     DI -> new value for the register OF
  8087. Return: AX = return code (see #2941)
  8088. SeeAlso: AH=04h"MDEBUG"
  8089.  
  8090. (Table 2941)
  8091. Values for MDEBUG return code:
  8092.  FFFFh    call not allowed
  8093.  FFFEh    password is invalid
  8094.  FFFDh    display mode is invalid
  8095.  else    successful
  8096. --------N-6003-------------------------------
  8097. INT 60 - FTP Packet Driver - BASIC FUNC - RELEASE TYPE
  8098.     AH = 03h
  8099.     BX = handle
  8100. Return: CF set on error
  8101.        DH = error code (see #2937)
  8102.     CF clear if successful
  8103. SeeAlso: AH=02h"FTP"
  8104. --------G-6003-------------------------------
  8105. INT 60 - SYS_PROF.EXE - GET ADDRESS OF PROFILING TABLE
  8106.     AH = 03h
  8107. Return: ES:BX -> profiling table
  8108. Note:    SYS_PROF.EXE is the TSR portion of a profiler from Micro Cornucopia
  8109.       Issue 47
  8110. SeeAlso: AH=04h"SYS_PROF"
  8111. --------N-6004-------------------------------
  8112. INT 60 - FTP Packet Driver - BASIC FUNC - SEND PACKET
  8113.     AH = 04h
  8114.     DS:SI -> buffer
  8115.     CX = length
  8116. Return: CF set on error
  8117.         DH = error code (see #2937)
  8118.     CF clear if successful
  8119. Note:    the buffer may be modified immediately upon return from this call
  8120. SeeAlso: AH=0Bh
  8121. --------G-6004-------------------------------
  8122. INT 60 - MDEBUG - POP UP
  8123.     AH = 04h
  8124.     DS:SI -> password or a null byte
  8125. Return: AX = return code (see #2941)
  8126. SeeAlso: AH=03h"MDEBUG",AH=07h"MDEBUG"
  8127. --------G-6004-------------------------------
  8128. INT 60 - SYS_PROF.EXE - CLEAR PROFILING TABLE
  8129.     AH = 04h
  8130. Note:    SYS_PROF.EXE is the TSR portion of a profiler from Micro Cornucopia
  8131.       Issue 47
  8132. SeeAlso: AH=03h"SYS_PROF"
  8133. --------N-6005-------------------------------
  8134. INT 60 - FTP Packet Driver - BASIC FUNC - TERMINATE DRIVER FOR HANDLE
  8135.     AH = 05h
  8136.     BX = handle (optional for v1.10+)
  8137. Return: CF set on error
  8138.        DH = error code (see #2937)
  8139.     CF clear if successful
  8140. --------G-6005-------------------------------
  8141. INT 60 - MDEBUG - GET AND SET MDEBUG FLAGS
  8142.     AH = 05h
  8143.     DS:SI -> password or a null byte
  8144.     BL = new value for the semaphor of MDEBUG
  8145.          00h  enable popup of MDEBUG
  8146.          else disable popup of MDEBUG
  8147. Return: AX = return code
  8148.         FFFEh password is invalid
  8149.         FFFDh display mode is invalid
  8150.         else successful
  8151.         BL = old value of the semaphor of MDEBUG
  8152.         BH = old value of the INT 08h semaphor
  8153.             (this semaphor is always reset after this function)
  8154. --------N-6006-------------------------------
  8155. INT 60 - FTP Packet Driver - BASIC FUNC - GET ADDRESS
  8156.     AH = 06h
  8157.     BX = handle (optional for v1.10+)
  8158.     ES:DI -> buffer
  8159.     CX = length
  8160. Return: CF set on error
  8161.         DH = error code (see #2937)
  8162.     CF clear if successful
  8163.         CX = length
  8164. Note:    copies the local net address associated with the handle into the buffer
  8165. --------G-6006-------------------------------
  8166. INT 60 - MDEBUG - GET PASSWORD STATUS
  8167.     AH = 06h
  8168. Return: AL = status
  8169.         00h password inactive
  8170.         01h password active
  8171. --------N-6007-------------------------------
  8172. INT 60 - FTP Packet Driver - BASIC FUNC - RESET INTERFACE
  8173.     AH = 07h
  8174.     BX = handle (optional for v1.10+)
  8175. Return: CF set on error
  8176.         DH = error code (see #2937)
  8177.     CF clear if successful
  8178. --------G-6007-------------------------------
  8179. INT 60 - MDEBUG v1.70+ - GET ACTIVE PART OF MDEBUG
  8180.     AH = 07h
  8181. Return: AL = active part for the next popup session of MDEBUG:
  8182.         bit 0: the next popup session will start in the interpreter rather
  8183.           than in the monitor
  8184.         bit 1: the next popup session will sart in the online-help
  8185. SeeAlso: AH=03h"MDEBUG",AH=04h"MDEBUG"
  8186. --------G-6008-------------------------------
  8187. INT 60 - MDEBUG - UNUSED
  8188.     AH = 08h-FFh
  8189. Return: AX = FFFCh
  8190. --------N-600A-------------------------------
  8191. INT 60 - FTP Packet Driver 1.09+ - HIGH-PERF FUNC - GET PARAMETERS
  8192.     AH = 0Ah
  8193. Return: CF set on error
  8194.         DH = error code (0Bh) (see #2937)
  8195.     CF clear if successful
  8196.         ES:DI -> parameter table (see #2942)
  8197.  
  8198. Format of packet driver parameter table:
  8199. Offset    Size    Description    (Table 2942)
  8200.  00h    BYTE    major revision of packet driver spec driver conforms to
  8201.  01h    BYTE    minor revision of packet driver spec
  8202.  02h    BYTE    length of this structure in bytes
  8203.  03h    BYTE    length of a MAC-layer address
  8204.  04h    WORD    maximum transfer unit, including MAC headers
  8205.  06h    WORD    buffer size for multicast addr
  8206.  08h    WORD    number of receive buffers (one less than back-to-back MTU rcvs)
  8207.  0Ah    WORD    number of transmit buffers
  8208.  0Ch    WORD    interrupt number to hook for post-EOI processing, 00h=none
  8209. --------N-600B-------------------------------
  8210. INT 60 - FTP Packet Driver 1.09 - HIGH-PERF FUNC - ASYNCHRONOUS SEND PACKET
  8211.     AH = 0Bh
  8212.     DS:SI -> buffer
  8213.     CX = length of buffer
  8214.     ES:DI -> FAR function to call when buffer becomes available (see #2943)
  8215. Return: CF set on error
  8216.         DH = error code (0Bh,0Ch) (see #2937)
  8217.     CF clear if successful
  8218. Notes:    unlike function 04h, the buffer is not available for modification as
  8219.       soon as the call returns; the buffer may be queued by the driver and
  8220.       not processed until later
  8221.     this function has been dropped from v1.10+ of the specification and
  8222.       replaced by function 0Ch
  8223. SeeAlso: AH=04h"Packet Driver",AH=0Ch"Packet Driver"
  8224.  
  8225. (Table 2943)
  8226. Values packet driver completion function is called with:
  8227.     AX = result
  8228.         00h copy OK
  8229.         nonzero error
  8230.     ES:DI -> buffer passed to INT 60/AH=0Bh call
  8231. --------N-600C-------------------------------
  8232. INT 60 - FTP Packet Driver 1.10+ - HIGH-PERF FUNC - ASYNCHRONOUS SEND PACKET
  8233.     AH = 0Ch
  8234.     ES:DI -> pointer to IOCB (see #2944)
  8235. Return: CF set on error
  8236.         DH = error code (see #2937)
  8237.     CF clear if successful
  8238. SeeAlso: AH=04h"Packet Driver",AH=0Bh"Packet Driver"
  8239.  
  8240. Format of packet driver IOCB:
  8241. Offset    Size    Description    (Table 2944)
  8242.  00h    DWORD    pointer to buffer
  8243.  04h    WORD    length of buffer
  8244.  06h    BYTE    flags
  8245.         bit 0: packet driver is finished with IOCB
  8246.         bit 1: application requests upcall when driver completes
  8247.  07h    DWORD    function address for upcall (see #2945)
  8248.  0Bh  4 BYTEs    future gather write
  8249.  0Fh    BYTE    ???
  8250.  10h  8 BYTEs    private driver workspace
  8251.  
  8252. (Table 2945)
  8253. Values completion function is called with:
  8254.     ES:DI -> IOCB passed to INT 60/AH=0Ch
  8255. --------N-600C-------------------------------
  8256. INT 60 - Banyan VINES, 3com - GET STATION ADDRESS
  8257.     AH = 0Ch
  8258. Return: AL = status
  8259.         00h successful
  8260.         ES:SI -> 6-byte station address
  8261.         02h semaphore service is unavailable
  8262. --------N-600D-------------------------------
  8263. INT 60 - FTP Packet Driver 1.10+ - HIGH-PERF FUNC - DROP PACKET FROM QUEUE
  8264.     AH = 0Dh
  8265.     ES:DI -> IOCB
  8266. Return: CF set on error
  8267.         DH = error code (see #2937)
  8268.     CF clear if successful
  8269. SeeAlso: AH=0Ch"Packet Driver"
  8270. --------N-6011-------------------------------
  8271. INT 60 - 3com, 10NET, Banyan VINES - LOCK AND WAIT
  8272.     AH = 11h
  8273.     AL = drive number or 0
  8274.     DX = number of seconds to wait
  8275.     ES:SI = Ethernet address or 0
  8276.     DS:BX -> 31-byte ASCIZ semaphore name
  8277. Return: AL = status (see #2946)
  8278. SeeAlso: AH=12h,AH=13h
  8279.  
  8280. (Table 2946)
  8281. Values for 3com semaphore status:
  8282.  00h    successful
  8283.  01h    timeout
  8284.  02h    server not responding
  8285.  03h    invalid semaphore name
  8286.  04h    semaphore list is full
  8287.  05h    invalid drive ID
  8288.  06h    invalid Ethernet address
  8289.  07h    not logged in
  8290.  08h    write to network failed
  8291.  09h    semaphore already logged for this CPU
  8292. --------N-6012-------------------------------
  8293. INT 60 - 3com, 10NET, Banyan VINES - LOCK
  8294.     AH = 12h
  8295.     AL = drive number or 00h
  8296.     ES:SI = Ethernet address or 0000h:0000h
  8297.     DS:BX -> 31-byte ASCIZ semaphore name
  8298. Return: AL = status (see also #2946)
  8299.         01h semaphore currently locked by another PC
  8300. Note:    unlike function 11h, this function returns immediately
  8301. SeeAlso: AH=11h,AH=13h
  8302. --------N-6013-------------------------------
  8303. INT 60 - 3com, 10NET, Banyan VINES - UNLOCK
  8304.     AH = 13h
  8305.     AL = drive number or 00h
  8306.     ES:SI = Ethernet address or 0000h:0000h
  8307.     DS:BX -> 31-byte ASCIZ semaphore name
  8308. Return: AL = status (see also #2946)
  8309.         01h semaphore not locked
  8310. SeeAlso: AH=11h,AH=12h
  8311. --------N-6014-------------------------------
  8312. INT 60 - FTP Packet Driver - EXTENDED FUNC - SET RECEIVE MODE
  8313.     AH = 14h
  8314.     BX = handle (optional for v1.10+)
  8315.     CX = mode (see #2947)
  8316. Return: CF set on error
  8317.        DH = error code (01h,08h) (see #2937)
  8318.     CF clear if successful
  8319. SeeAlso: AH=15h
  8320.  
  8321. (Table 2947)
  8322. Values for packet driver receive mode:
  8323.  01h    turn off receiver
  8324.  02h    receive only packets sent to this interface
  8325.  03h    mode 2 plus broadcast packets
  8326.  04h    mode 3 plus limited multicast packets
  8327.  05h    mode 3 plus all multicast packets
  8328.  06h    all packets
  8329.  07h    raw mode for serial line only (v1.10+)
  8330. --------N-6015-------------------------------
  8331. INT 60 - FTP Packet Driver - EXTENDED FUNC - GET RECEIVE MODE
  8332.     AH = 15h
  8333.     BX = handle (optional for v1.10+)
  8334. Return: CF set on error
  8335.         DH = error code (01h) (see #2937)
  8336.     CF clear if successful
  8337.         AX = receive mode (see #2947)
  8338. SeeAlso: AH=14h
  8339. --------N-6016-------------------------------
  8340. INT 60 - FTP Packet Driver - EXTENDED FUNC - SET MULTICAST LIST
  8341.     AH = 16h
  8342.     ES:DI -> multicast list
  8343.     CX = length of list in bytes
  8344. Return: CF set on error
  8345.         DH = error code (06h,09h,0Eh) (see #2937)
  8346.     CF clear if successful
  8347. SeeAlso: AH=17h
  8348. --------N-6017-------------------------------
  8349. INT 60 - FTP Packet Driver - EXTENDED FUNC - GET MULTICAST LIST
  8350.     AH = 17h
  8351. Return: CF set on error
  8352.         DH = error code (06h,09h) (see #2937 at AX=01FFh)
  8353.     CF clear if successful
  8354.         ES:DI -> multicast addresses (do not modify)
  8355.         CX = bytes of multicast addresses currently in use
  8356. SeeAlso: AH=16h
  8357. --------N-6018-------------------------------
  8358. INT 60 - FTP Packet Driver - EXTENDED FUNC - GET STATISTICS
  8359.     AH = 18h
  8360.     BX = handle (optional for v1.10+)
  8361. Return: CF set on error
  8362.         DH = error code (01h) (see #2937)
  8363.     CF clear if successful
  8364.         DS:SI -> statistics (see #2948)
  8365.  
  8366. Format of packet driver statistics:
  8367. Offset    Size    Description    (Table 2948)
  8368.  00h    DWORD    packets in
  8369.  04h    DWORD    packets out
  8370.  08h    DWORD    bytes in
  8371.  0Ch    DWORD    bytes out
  8372.  10h    DWORD    errors in
  8373.  14h    DWORD    errors out
  8374.  18h    DWORD    packets dropped
  8375. --------N-6019-------------------------------
  8376. INT 60 - FTP Packet Driver - EXTENDED FUNC - SET NETWORK ADDRESS
  8377.     AH = 19h
  8378.     ES:DI -> address
  8379.     CX = length of address
  8380. Return: CF set on error
  8381.         DH = error code (0Dh,0Eh) (see #2937)
  8382.     CF clear if successful
  8383.         CX = length
  8384. --------N-601A-------------------------------
  8385. INT 60 - FTP Packet Driver v1.10+ - EXTENDED FUNC - SEND RAW BYTES
  8386.     AH = 1Ah
  8387.     DS:SI -> buffer
  8388.     CX = length of buffer
  8389. Return: CF set on error
  8390.         DH = error code (see #2937 at AX=01FFh)
  8391.     CF clear if successful
  8392. SeeAlso: AH=1Ch
  8393. --------N-601B-------------------------------
  8394. INT 60 - FTP Packet Driver v1.10+ - EXTENDED FUNC - FLUSH RAW BYTES RECEIVED
  8395.     AH = 1Bh
  8396. Return: CF set on error
  8397.         DH = error code (see #2937)
  8398.     CF clear if successful
  8399. SeeAlso: AH=1Ch
  8400. --------N-601C-------------------------------
  8401. INT 60 - FTP Packet Driver v1.10+ - EXTENDED FUNC - FETCH RAW BYTES RECEIVED
  8402.     AH = 1Ch
  8403.     DS:SI -> buffer
  8404.     CX = length of buffer
  8405.     DX = timeout in clock ticks
  8406. Return: CF set on error
  8407.         DH = error code (see #2937 at AX=01FFh)
  8408.     CF clear if successful
  8409.         CX = number of bytes transferred to buffer
  8410. SeeAlso: AH=1Ah,AH=1Bh
  8411. --------a-60AD-------------------------------
  8412. INT 60 - AccessDOS - API
  8413.     AH = ADh
  8414.     AL = function
  8415.         E1h ???
  8416.         Return: AX = ???
  8417.         E2h get configuration
  8418.         Return: BX:AX -> configuration data
  8419. Program: AccessDOS is a public domain TSR developed at The Trace Research and
  8420.       Development Center which provides extensions for keyboard, mouse,
  8421.       and sound access by the visually, hearing, or motor-control
  8422.       impaired.
  8423. Range:    INT 60 to INT 66, selected by scanning for 0000h:0000h vector
  8424. Note:    the installation check is to test for the signature "ACCESSv1.00"
  8425.       beginning three bytes past the start of the interrupt handler
  8426. --------N-60E9-------------------------------
  8427. INT 60 - FTP Packet Driver - Crynwr Software - AUTOSELECT TRANSCEIVER
  8428.     AH = E9h
  8429.     ???
  8430. Return: ???
  8431. --------!---Section--------------------------
  8432.